maven常用命令生命周期阶段以及对应的目标/anonymas/blog/item/08384d44975c91036a63e527.htmlmaven标准目录结构/anonymas/blog/item/a1e849f6c85aff64dcc474eb.htmlProfile定义/系统与环境变量列表/anonymas/blog/item/da847e109a1e805bf919b861.htmlPOM参考以及POM最佳实践/anonymas/blog/item/c4b604aba1eae3f61f17a2a8.html用来查找某个制品的maven路径/maven官方plugin列表/plugins/index.htmlmojo项目的plugin的列表/plugins.htmlMaven手册的地址/books/maven-book/reference_zh/public-book.html/books/maven-book/reference/官方POM文件完整参考/ref/2.2.1/maven-model/maven.html官方settings文件完整参考/settings.html官方依赖机制介绍/guides/introduction/introduction-to-dependency-mechanism. htmlmvn archetype:generate列出所有可用的模板供选择并创建mvn dependency:analyze使用Maven Dependency插件进行优化mvn dependency:resolve已解决依赖的列表mvn dependency:tree项目的整个依赖树mvn install -X查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件(慎用,输出信息巨大)mvn scm:checkin -Dmessage="Message"mvn scm:checkoutmvn scm:updatemvn help:effective-pom查看项目的有效POMmvn help:active-profiles 列出活动的Profilemvn eclipse:eclipse 生成eclipse项目mvn eclipse:cleanmvn 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-webmvn clean install -Pproduction -Xmvn 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-repomvn 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=falsemvn archetype:generate-DarchetypeGroupId=org.simple-DarchetypeArtifactId= simple-DarchetypeVersion=1.0-SNAPSHOTmvn jar:jarEJB3指定打包类型,否则该插件默认认为EJB为2.1,并寻找某些EJB配置文件是否存在。
src/main/webapp/WEB-INF目录中。
deploy deploy:deploy2、Maven项目的标准目录介绍Maven提倡使用一个共同的标准目录结构,使开发人员能在熟悉了一个Maven工程后,对其他的Maven工程也能清晰了解。
这样做也省去了很多设置的麻烦。
以下的文档介绍是Maven希望的目录结构,并且也是目录创建工程是采用的目录结构。
Maven推荐大家尽可能的遵守这样的目录结构。
在顶级目录上是工程的描述文件pom.xml(如果使用Ant则还包括其他属性文件,maven.xml或build.xml),另外还包括提供给最终用户的文件,如,README.txt, LICENSE.txt等等。
顶级目录还包括两个子目录:src,target。
顶级目录下可能出现的其他目录仅仅是CVS或.svn和其他多模块工程的工程目录,最好不要再有其他目录。
Target目录是所有工程编译构建的输出目录。
Src目录包含所有工程的源码文件,配置文件,资源文件等等。
它下面的子目录一般包含main(主要的工程源文件),test(测试文件),site(项目站点文件)。
项目构建的生命周期的介绍Maven 2是围绕着构建生命周期概念设计的。
这意味着,构建或者发布的过程已经被清晰的定义了。
当我们使用Maven构建工程时,我们只需要了解几个Maven定义好的命令即可,其他的工作则交给POM 来完成。
以下给出Maven提供的构建生命周期列表:因此,当我们构建一个项目时,只需要了解自己希望做什么,然后执行以上对应的生命周期即可。
例如,我们希望编译我们的工程。
在命令行状态下进入到工程的pom.xml文件所在的目录中,使用命令:mvn compile;希望构建打包我们的工程,使用mvn package即可。
当然了,maven的构建生命周期也是可以扩展和自定义的,这里就先不做介绍了。
pom.xml的介绍pom.xml包含了一个项目的项目对象模型(POM)。
项目对象模型(POM)是Maven工作的基本单元。
请记住,这个是非常重要的,因为POM包含了工程的非常重要的信息块,并且基本上包含了和项目相关的任何要素。
让我们熟悉一下pom.xml包含的基本项:poject 这是pom.xml的顶级元素。
modelVersion 这是元素指出了这个POM使用的是那个版本的对象模型。
这个模型的版本自身么是经常改变的,但这种改变是为了使模型更加的稳定。
groupId 这个元素指出创建这个工程的组织或团队的唯一标识,并且这个也是一个项目的关键标识,推荐使用这个组织或团队的完整域名。
例如:org.apache.maven.plugins是为Maven plug-ins定义的groupId。
artifactId 这个元素指出这个工程的主要制品的基本名称。
一个工程的主要制品如果是jar文件,次要制品如果是源码包,则次要制品的名称的一部分也使用artifactId。
典型的制品名称使用这样的格式:<artifactId>-<version>.<extension>(例如,myapp-1.0.jar)。
packaging 这个元素指出制品的类型(例如:JAR,WAR,EAR等等)。
这个元素不仅仅指示出制品的类型,同时也指示出工程构建过程中的部分生命周期。
Packaging的默认值是JAR。
version 这个元素指出这个项目产生的制品的版本号,Maven在帮助开发人员管理版本号时走了很长的路,以后你将经常看到SNAPSHOT在一个版本中,这个表示一个工程仍然在开发状态。
name 这个元素指出这个工程显示的名称。
这个常用于Maven产生的文档中。
url 这个员算指出在哪里能发现工程的站点。
这个常用于Maven产生的文档中。
desription 这个元素提供了这个工程基本的描述。
这个也常用于Maven产生的文档中。
以上只是pom.xml中的一些基本项,完整的pom.xml的元素介绍请参考:/maven-model/maven.html。