Source: http://hi.baidu.com/anonymas/blog/item/e63996ca0c76961d7e3e6f94.html
生命周期阶段以及对应的目标
http://hi.baidu.com/anonymas/blog/item/08384d44975c91036a63e527.html
maven标准目录结构
http://hi.baidu.com/anonymas/blog/item/a1e849f6c85aff64dcc474eb.html
Profile定义/系统与环境变量列表
http://hi.baidu.com/anonymas/blog/item/da847e109a1e805bf919b861.html
POM参考以及POM最佳实践
http://hi.baidu.com/anonymas/blog/item/c4b604aba1eae3f61f17a2a8.html
用来查找某个制品的maven路径
http://www.mvnrepository.com/
maven官方plugin列表
http://maven.apache.org/plugins/index.html
mojo项目的plugin的列表
http://mojo.codehaus.org/plugins.html
Maven手册的地址
http://www.sonatype.com/books/maven-book/reference_zh/public-book.html
http://www.sonatype.com/books/maven-book/reference/
官方POM文件完整参考
http://maven.apache.org/ref/2.2.1/maven-model/maven.html
官方settings文件完整参考
http://maven.apache.org/settings.html
官方依赖机制介绍
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
mvn archetype:generate 列出所有可用的模板供选择并创建
mvn dependency:analyze 使用Maven Dependency插件进行优化
mvn dependency:resolve 已解决依赖的列表
mvn dependency:tree 项目的整个依赖树
mvn install -X 查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件 (慎用,输出信息巨大)
mvn scm:checkin -Dmessage="Message"
mvn scm:checkout
mvn scm:update
mvn help:effective-pom 查看项目的有效POM
mvn help:active-profiles 列出活动的Profile
mvn eclipse:eclipse 生成eclipse项目
mvn eclipse:clean
mvn test -Dtest=MyTest 只对src.test.java下的MyTest类进行测试
mvn test -Dtest=MyTest -DfailIfNoTests=false 如果测试类里没有测试方法不报错
mvn package -Dmaven.test.skip=true 打包之前不执行单元测试
mvn jetty:run jetty插件运行web程序
exec 插件可以用来运行程序
surefire 插件可以用来测试程序
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-web
mvn clean install -Pproduction -X
mvn install -Dmaven.test.skip=true
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
mvn assembly:assembly
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
mvn install:install-file
-Dfile=<path-to-file>
-DgroupId=<group-id>
-DartifactId=<artifact-id>
-Dversion=<version>
-Dpackaging=<packaging>
-DgeneratePom=true
-DcreateChecksum=true
-DpomFile=path-to-pom
-DlocalRepositoryPath=path-to-specific-local-repo
-DlocalRepositoryId=id-for-specific-local-repo
mvn deploy:deploy-file
-Durl=file
-DrepositoryId=some.id
-Dfile=path-to-your-artifact-jar
-DgroupId=your.groupId
-DartifactId=your-artifactId
-Dversion=version
-Dpackaging=jar
-DgeneratePom=false
-DpomFile=path-to-your-pom.xml
-Dclassifier=bin
-DuniqueVersion=false
mvn archetype:generate
-DarchetypeGroupId=org.simple
-DarchetypeArtifactId= simple
-DarchetypeVersion=1.0-SNAPSHOT
mvn clean install
生命周期阶段 | 描述 |
---|---|
validate | 验证项目是否正确,以及所有为了完整构建必要的信息是否可用 |
generate-sources | 生成所有需要包含在编译过程中的源代码 |
process-sources | 处理源代码,比如过滤一些值 |
generate-resources | 生成所有需要包含在打包过程中的资源文件 |
process-resources | 复制并处理资源文件至目标目录,准备打包 |
compile | 编译项目的源代码 |
process-classes | 后处理编译生成的文件,例如对Java类进行字节码增强(bytecode enhancement) |
generate-test-sources | 生成所有包含在测试编译过程中的测试源码 |
process-test-sources | 处理测试源码,比如过滤一些值 |
generate-test-resources | 生成测试需要的资源文件 |
process-test-resources | 复制并处理测试资源文件至测试目标目录 |
test-compile | 编译测试源码至测试目标目录 |
test | 使用合适的单元测试框架运行测试。这些测试应该不需要代码被打包或发布 |
prepare-package | 在真正的打包之前,执行一些准备打包必要的操作。这通常会产生一个包的展开的处理过的版本(将会在Maven 2.1+中实现) |
package | 将编译好的代码打包成可分发的格式,如JAR ,WAR ,或者EAR |
pre-integration-test | 执行一些在集成测试运行之前需要的动作。如建立集成测试需要的环境 |
integration-test | 如果有必要的话,处理包并发布至集成测试可以运行的环境 |
post-integration-test | 执行一些在集成测试运行之后需要的动作。如清理集成测试环境。 |
verify | 执行所有检查,验证包是有效的,符合质量规范 |
install | 安装包至本地仓库,以备本地的其它项目作为依赖使用 |
deploy | 复制最终的包至远程仓库,共享给其它开发人员和项目(通常和一次正式的发布相关) |
mvn jar:jar
JAR打包默认的目标
生命周期阶段 | 目标 |
---|---|
process-resources | resources:resources |
compile | compiler:compile |
process-test-resources | resources:testResources |
test-compile | compiler:testCompile |
test | surefire:test |
package | jar:jar |
install | install:install |
deploy | deploy:deploy |
POM打包默认的目标
生命周期阶段 | 目标 |
---|---|
package | site:attach-descriptor |
install | install:install |
deploy | deploy:deploy |
EJB打包默认的目标
生命周期阶段 | 目标 |
---|---|
process-resources | resources:resources |
compile | compiler:compile |
process-test-resources | resources:testResources |
test-compile | compiler:testCompile |
test | surefire:test |
package | ejb:ejb |
install | install:install |
deploy | deploy:deploy |
Maven提供了对EJB 2和3的支持。必须配置EJB 插件来为EJB3 指定打包类型,否则该插件默认认为EJB 为2.1,并寻找某些EJB 配置文件是否存在。
WAR打包默认的目标
生命周期阶段 | 目标 |
---|---|
process-resources | resources:resources |
compile | compiler:compile |
process-test-resources | resources:testResources |
test-compile | compiler:testCompile |
test | surefire:test |
package | war:war |
install | install:install |
deploy | deploy:deploy |
注意war:war
插件需要一个web.xml
配置文件在项目的src/main/webapp/WEB-INF
目录中。
EAR打包默认的目标
生命周期阶段 | 目标 |
---|---|
generate-resources | ear:generate-application-xml |
process-resources | resources:resources |
package | ear:ear |
install | install:install |
deploy | deploy:deploy |