1.第一个命令
显示版本信息:mvn -v/-version (通常用来检查是否具有maven环境)
2.创建Maven项目
- 创建mvn项目:mvn archetype:generate
- 使用internal元数据创建maven项目:
mvn archetype:generate -DarchetypeCatalog=internal - 创建一个简单的Java工程:mvn archetype:create -DgroupId=com.mycompany.example -DartifactId=Example
3.Eclipse相关
- 将项目转化为Eclipse项目:mvn eclipse:eclipse(生成Eclipse项目必须的配置文件)
- 清除Eclipse相关配置文件:mvn eclipse:clean
- 生成Wtp插件的Web项目:mvn -Dwtpversion=1.0 eclipse:eclipse
- 清除Eclipse项目的配置信息(Web项目):mvn -Dwtpversion=1.0 eclipse:clean
4.编译Maven项目
- 编译mvn项目:mvn compile
- 编译项目测试代码:mvn test-compile
5.测试Maven项目
- 编译并测试:mvn test
- 只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile ( -skipping 的灵活运用,当然也可以用于其他组合命令)
6.打包Maven项目
- 打包Maven项目:mvn package(生成target目录,编译、测试代码,生成测试报告,生成jar/war文件)
- 清理并打包Maven项目:mvn clean package
7.清理Maven生成的文件
- 清理生成的文件:mvn clean
8.其他实用的常用命令
- 生成项目相关信息的网站:mvn site
- 显示详细错误信息:mvn -e
- 验证工程是否正确,所有需要的资源是否可用:mvn validate
- 发布第三方Jar到本地库中:mvn install:install-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:/client-0.1.0.jar -DdownloadSources=true -DdownloadJavadocs=true(需要修改相应参数:-DgroupId、-DartifactId、-Dversion、-Dpackaging、-Dfile)
9.mvn help
- 查看“有效的 (effective)”POM,它暴露了Maven的默认设置:mvn help:effective-pom
- 使用Help插件的describe目标来输出Maven Help插件的信息:mvn help:describe -Dplugin=help
- 使用Help插件输出完整的带有参数的目标列:mvn help:describe -Dplugin=help -Dfull
- 获取单个目标的信息,设置mojo参数和plugin参数。此命令列出了Compiler 插件的compile 目标的所有信息:mvn help:describe -Dplugin=compiler -Dmojo=compile -Dfull
- 列出所有Maven Exec 插件可用的目标:mvn help:describe -Dplugin=exec -Dfull
Maven常用命令详解:
1、mvn archetype:generate 创建mvn项目
可以使用 mvn archetype:generate -DarchetypeCatalog=internal
archetypeCatalog表示插件使用的archetype元数据,默认值为remote,local,即中央仓库archetype元数据(http://repo1.maven.org/maven2/archetype-catalog.xml)加上插件内置元数据的和,由于中央仓库的archetype太多,导致这个列表太长,因此可以自己指定仅用内置元数据(20个左右)
首次运行时,mvn会从远程"中央仓库"下载一些必需的文件到"本地仓库" - (如果你有兴趣,可以在等待下载过程中,观察一下"C:\Users\当前用户名\.m2\repository"到底下载了些什么)
下载完成后(下一篇会讲解如何,在局域网环境中搭建“私服”,直接从局域网的代理仓库中下载这些依赖项),会自动进入交互模式,会让你输入一些基本信息,类似下面这样:
...
[INFO] Generating project in Interactive mode (这里会卡一会儿,因为要联网获取项目模板)
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: remote -> br.com.ingenieux:elasticbeanstalk-service-webapp-archetype (A Maven Archetype Encompassing RestAssured, Jetty, Jackson, Guice and Jersey for Publishing JAX-RS-based Services on AWS' Elastic Beanstalk Service)
... (这里会自动列出很多项目模板,每种模板前面会有一个数字序号)
336: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
...
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 336: (这里根据每个人机器上安装的eclipse插件不同,可能默认的数字不是这个,可以先不管,直接回车。若是想要创建web项目,则需选择对应的数字。Web项目的archetypes为:maven-archetype-webapp。)
Choose org.apache.maven.archetypes:maven-archetype-quickstart version:
1: 1.0-alpha-1
2: 1.0-alpha-2
3: 1.0-alpha-3
4: 1.0-alpha-4
5: 1.0
6: 1.1
Choose a number: 6: (直接回车)
Define value for property 'groupId': : cnblogs (可理解成类似package或namespace的名称,通常我们填写组织机构名称缩写)
Define value for property 'artifactId': : maven-hello-world (组件名称,可理解成项目名称)
Define value for property 'version': 1.0-SNAPSHOT: : (版本号,直接回车,默认1.0-SNAPSHOT)
Define value for property 'package': cnblogs: : (打包后的jar文件名)
Confirm properties configuration:
groupId: cnblogs
artifactId: maven-hello-world
version: 1.0-SNAPSHOT
package: cnblogs
Y: : (直接回车确认)
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: cnblogs
[INFO] Parameter: packageName, Value: cnblogs
[INFO] Parameter: package, Value: cnblogs
[INFO] Parameter: artifactId, Value: maven-hello-world
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS (看到这个,表示项目创建成功!)
[INFO] ------------------------------------------------------------------------
...
注:create is deprecated in maven 3.0.5 and beyond,在maven3.0.5以上版本舍弃了create,使用generate生成项目。所以mvn archetype:create已不可用。