1 ,三套生命周期
1.1 clean 生命周期
pre-clean
clean 清理上次构建生产的文件
post-clean
1.2 default生命周期
validate
initialize
generate-sources
process-sources 处理项目主资源文件,默认处理src/main/resources下文件
generate-resources
process-resources
compile 编译项目的主源码,默认编译src/main/java下的java文件到项目输出的主classpath
process-classes
generate-test-sources
process-test-sources 处理项目测试资源文件,默认处理src/test/resources下文件
generate-test-resources
process-test-resources
test-compile 编译项目的测试源码,默认编译src/test/java下的java文件
process-test-classes
test 进行单元测试
prepare-package
package 打包成可发布的格式
pre-integration-test
integration-test
post-integration-test
verify
install 将包安装到maven本地仓库,以供其他项目使用
deploy将最终报复制到远程仓库,以供其他人使用
1.3 site生命周期
pre-site
site
post-site
site-deploy 将生产的项目发布到服务器上
执行每套生命周期后面的命令,都会默认执行前面的命令
2,常用mvn命令及命令组合
mvn clean install 清理上次构建生产的文件,编译,打包并安装到本地maven库
mvn clean deploy 清理上次构建生产的文件,编译,打包并安装到本地maven库,并发布到远程仓库
mvn clean install -Dmaven.test.skip=true 和上面作用一样,跳过测试的编译和执行
maven依赖分析的命令
mvn dependency:list
mvn dependency:tree
mvn dependency:analyze
maven创建web项目
mvn archetype:generate -DgroupId=com.test -DartifactId=ScreenDisplayServer -DarchetypeArtifactId=maven-archetype-webapp -DinteractivMode=false
3,pom中的一些配置
给编译插件制定jdk的版本
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
生产项目源码包
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
将项目部署到远程服务器
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0</version>
<configuration>
<container>
<containerId>tomcat6x</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<cargo.remote.username>admin</cargo.remote.username>
<cargo.remote.password></cargo.remote.password>
<cargo.tomcat.manager.url>http://192.168.1.165:8080/manager</cargo.tomcat.manager.url>
</properties>
</configuration>
</configuration>
</plugin>
执行mvn cargo:redeploy执行发布
修改超级pom中默认的java 和资源存放路径
<sourceDirectory>${project.basedir}/src</sourceDirectory>
<resources>
<resource>
<directory>${project.basedir}/src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
设置deploy的远程服务器
<repository>
<!-- 服务器 -->
<id>tmg-releases</id>
<!-- 服务器上传目录 -->
<url>http://192.168.101.100:9527/nexus-webapp-1.7.2/content/repositories/releases/</url>
</repository>
setting.xml中设置私服地址
<profiles>
<profile>
<id>dev</id>
<repositories>
<repository>
<id>central</id>
<url>http://192.168.101.1002:9527/nexus-webapp-1.7.2/content/groups/public/</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
修改本地默认maven 库地址
<localRepository>E:/MVN_ERP</localRepository>
web应用需要的依赖配置
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>