发表时间:2010-02-08
最后修改:2010-03-01
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 |