新建Maven项目

环境:jdk1.8 + EclipseMars + Maven3.3.3

一、新建Maven项目:

       首先,在你所要新建Maven项目的工作空间下新建一个空文件夹,文件夹名字即为Maven项目的名字(注:如果

       不提前建文件夹的话,Maven项目就会建在选中的表空间文件夹中);

       其次,在Eclipse左侧Project Explorer窗口中,按下面图片进行操作;

1、

 2、

    注:①:Packing有三个选项:jar,本地J2EE项目;pom,依赖项目;war,Web项目。

    3、Maven项目建好后,在pom.xml文件中的<packaging>war</packaging>这一行报“web.xml is missing  and<failOnMissingWebXml> is set to true”错误,这是因为新建Maven项目时定义为web项目,但是没有web.xml文件,新建一个就可以了。

        解决办法:右击项目  ——>  Java EE Tools  ——>  Generate Deployment Descriptor Stub,系统会在src/main/webapp/WEB_INF文件加下创建web.xml文件。 

    这样,一个Maven项目就建好了。

二、介绍pom.xml:

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<!-- 声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不
             可少的,这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性 -->
	<modelVersion>4.0.0</modelVersion>
	<!-- 项目的全球唯一标识符,通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也
             是由此生成,如com.xxx生成的相对路径为:/com/xxx -->
	<groupId>com.xxx</groupId>
	<!-- 构件的标识符,它和groupID一起唯一标识一个构件。实际对应项目名称,就是项目根目录的名称。
             构件是项目产生的或使用的一个东西,Maven为项目产生的构件包括:jars,源码,二进制发布和wars等 -->
	<artifactId>SmartPid</artifactId>
	<!-- 项目当前版本,格式为:主版本、次版本、增量版本、限定版本号 -->
	<version>0.0.1-SNAPSHOT</version>
	<!-- 项目产生的构件类型,例如jar、war、pom。插件可以创建他们自己的构件类型,所以前面列的不
             是全部构件类型 -->
	<packaging>war</packaging>
	<!-- 项目的名称,Maven产生的文档用 -->
	<name>SmartPid</name>
	<!-- 项目主页的URL,Maven产生的文档用 -->
	<url>http://maven.apache.org</url>

	<!-- 自定义标签管理(可在其内自定义标签名、值,用法同于el表达式:${标签名}得到其值),
	   常用于集中定义依赖版本号 -->
	<properties>
		<!-- 全局属性:源码编码为utf-8 -->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<spring.version>4.0.2.RELEASE</spring.version>
		<slf4j.version>1.7.5</slf4j.version>
		<jackson.version>2.6.1</jackson.version>
		<jdk.version>1.8</jdk.version>
		<guava.version>18.0</guava.version>
		<cxf.version>3.1.2</cxf.version>
	</properties>

    <!-- 项目引入插件所需要的额外依赖,通俗说就是Maven坐标 -->
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>		
			<!-- scope:管理部署(可以使用5个值:
				compile:缺省值,适用于所有阶段,会随着项目一起发布。 
				provided:类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 
				runtime:只在运行时使用,如JDBC驱动,适用运行和测试阶段。 
    				test:只在测试时使用,用于编译和运行测试代码。不会随项目发布。 
    				system:类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。) -->
			<scope>test</scope>
		</dependency>
	</dependencies>
	<!-- 发现依赖和扩展的远程仓库列表 -->
	<repositories>
		<repository>
			<id>nexus</id>
			<url>http://ip:port/nexus/content/groups/public/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>
	<!-- 发现插件的远程仓库列表,这些插件用于构建和报表 -->
	<pluginRepositories>
		<pluginRepository>
			<id>nexus</id>
			<url>http://192.168.1.25:8082/nexus/content/groups/public</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
	</pluginRepositories>
	<!-- 打包(专业叫构建)项目需要的信息 -->
	<build>
		<!-- 产生的构件的文件名,默认值是${artifactId}-${version} -->
  		<finalName>SmartPid</finalName> 
		<!-- 使用的插件列表 -->
		<plugins>
			<!-- 指定使用的插件 -->
			<!-- 项目编译插件 -->
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<!-- 配置该plugin期望得到的properties -->
				<configuration>
					<!-- 源代码编译版本  -->
					<source>${jdk.version}</source>
					<!-- 目标平台编译版本 -->
					<target>${jdk.version}</target>
				</configuration>
			</plugin>
			<!-- Maven打war包插件,也可打jar包,插件名为:maven-jar-plugin -->
			<plugin>
				<artifactId>maven-war-plugin</artifactId>
				<version>2.4</version>
				<configuration>
					<includeEmptyDirectories>true</includeEmptyDirectories>
					<warSourceDirectory>src/main/webapp</warSourceDirectory>
					<warName>SmartPid</warName>
				</configuration>
			</plugin>
			<!-- Maven自定义打包工具 -->
			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<version>2.5.5</version>
				<configuration>
					<descriptors>
						<descriptor>assembly.xml</descriptor>
					</descriptors>
				</configuration>
			</plugin>
			<!-- 使用cxf的Maven插件,解析webService接口 -->
			<plugin>
				<groupId>org.apache.cxf</groupId>
				<artifactId>cxf-codegen-plugin</artifactId>
				<version>${cxf.version}</version>
				<!-- 在构建生命周期中执行一组目标的配置,每个目标可能有不同的配置  -->
				<executions>
					<!-- execution元素包含了插件执行需要的信息  -->
					<execution>
						<!-- 执行目标的标识符,用于标识构建过程中的目标,或者匹配继承过程中需要合并的执行目标 -->
						<id>generate-sources</id>
						<!-- 绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段 -->
						<phase>generate-sources</phase>
						<!-- 配置的执行目标 -->
						<goals>
							<goal>wsdl2java</goal>
						</goals>
						<configuration>
							<wsdlOptions>
								<wsdlOption>
									<wsdl>${basedir}/src/main/resources/wsdl/KernelService.wsdl</wsdl>
									<extraargs>
										<extraarg>-mark-generated</extraarg>
										<extraarg>-asyncMethods</extraarg>
										<extraarg>-p</extraarg>
										<extraarg>com.MMSHGIS.client.KernelService</extraarg>
									</extraargs>
								</wsdlOption>
							</wsdlOptions>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>

----------------------------------------------本人水平有限,关于pom.xml的标签理解可能有不对的地方,如果大家发现一定要提出来,非常感谢!-------------------------------------------------

 

 

参考文章:http://www.cnblogs.com/dennyzhangdd/p/5831112.html

                    http://www.cnblogs.com/hafiz/p/5360195.html

                    http://blog.csdn.net/jiangyu1013/article/details/52424726

                    http://blog.csdn.net/sunzhenhua0608/article/details/32938533

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值