mavencmd.md 4.5 KB
Newer Older
RunAtWorld's avatar
maven  
RunAtWorld 已提交
1 2 3 4
# Maven 常用命令

## maven 命令的格式

RunAtWorld's avatar
RunAtWorld 已提交
5 6 7 8 9 10 11 12 13 14
maven 命令的格式为 `mvn [plugin-name]:[goal-name]` ,可以接受的参数如下:
```
-D 指定参数,如 -Dmaven.test.skip=true 跳过单元测试;
-P 指定 Profile 配置,可以用于区分环境;
-e 显示maven运行出错的信息;
-o 离线执行命令,即不去远程仓库更新包;
-X 显示maven允许的debug信息;
-U 强制去远程更新snapshot的插件或依赖,默认每天只更新一次。
```

RunAtWorld's avatar
maven  
RunAtWorld 已提交
15
## 常用命令
RunAtWorld's avatar
RunAtWorld 已提交
16
```
RunAtWorld's avatar
RunAtWorld 已提交
17 18
清理maven项目:mvn clean
验证项目是否正确以及必须的信息是否可用:mvn validate
RunAtWorld's avatar
RunAtWorld 已提交
19 20
编译源代码: mvn compile
测试编译后的代码,即执行单元测试代码:mvn test
RunAtWorld's avatar
RunAtWorld 已提交
21 22
maven 打包:mvn package
只打jar包:mvn jar:jar
RunAtWorld's avatar
RunAtWorld 已提交
23
检验package是否有效并且达到质量标准:mvn verify
RunAtWorld's avatar
RunAtWorld 已提交
24
编译测试代码:mvn test-compile
RunAtWorld's avatar
RunAtWorld 已提交
25 26 27
安装项目到本地仓库:mvn install
发布项目到远程仓库:mvn deploy

RunAtWorld's avatar
RunAtWorld 已提交
28 29 30 31 32
创建maven项目:mvn archetype:create
指定 group: -DgroupId=packageName
指定 artifact:-DartifactId=projectName
创建web项目:-DarchetypeArtifactId=maven-archetype-webapp
创建maven项目:mvn archetype:generate
RunAtWorld's avatar
RunAtWorld 已提交
33

RunAtWorld's avatar
RunAtWorld 已提交
34 35
生成源码jar包:mvn source:jar
产生应用需要的任何额外的源代码:mvn generate-sources
RunAtWorld's avatar
RunAtWorld 已提交
36

RunAtWorld's avatar
RunAtWorld 已提交
37 38 39
生成eclipse项目:mvn eclipse:eclipse
清理eclipse配置:mvn eclipse:clean
生成idea项目:mvn idea:idea
RunAtWorld's avatar
RunAtWorld 已提交
40

RunAtWorld's avatar
RunAtWorld 已提交
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
在集成测试可以运行的环境中处理和发布包:mvn integration-test
生成站点目录: mvn site
生成站点目录并发布:mvn site-deploy
安装本地jar到本地仓库:mvn install:install-file -DgroupId=packageName -DartifactId=projectName -Dversion=version -Dpackaging=jar -Dfile=path
显示maven依赖树:mvn dependency:tree
显示maven依赖列表:mvn dependency:list
下载依赖包的源码:mvn dependency:sources
查看实际pom信息: mvn help:effective-pom
分析项目的依赖信息:mvn dependency:analyze 或 mvn dependency:tree
查看帮助信息:mvn help:help 或 mvn help:help -Ddetail=true
查看插件的帮助信息:mvn :help,比如:mvn dependency:help 或 mvn ant:help
生成eclipse项目:mvn eclipse:eclipse
生成idea项目:mvn idea:idea
组合使用goal命令,如只打包不测试:mvn -Dtest package
只打jar包: mvn jar:jar
```

RunAtWorld's avatar
maven  
RunAtWorld 已提交
58
##  web项目相关命令
RunAtWorld's avatar
RunAtWorld 已提交
59 60 61 62 63 64 65 66 67 68 69
```
启动tomcat:mvn tomcat:run
启动jetty:mvn jetty:run
运行打包部署:mvn tomcat:deploy
撤销部署:mvn tomcat:undeploy
启动web应用:mvn tomcat:start
停止web应用:mvn tomcat:stop
重新部署:mvn tomcat:redeploy
部署展开的war文件:mvn war:exploded tomcat:exploded
```

RunAtWorld's avatar
maven  
RunAtWorld 已提交
70
##  maven执行顺序
RunAtWorld's avatar
RunAtWorld 已提交
71 72 73 74 75 76
```
mvn clean compile
mvn clean test
mvn clean package
mvn clean install
```
RunAtWorld's avatar
maven  
RunAtWorld 已提交
77
实际上,执行test之前会先执行compile的,执行package之前会先执行test,install之前会执行package.  
RunAtWorld's avatar
RunAtWorld 已提交
78
若直接以某一个phase为goal,将先执行完它之前的phase,如mvn install将会先validate、compile、test、package、integration-test、verify最后再执行install phase。
RunAtWorld's avatar
RunAtWorld 已提交
79

RunAtWorld's avatar
maven  
RunAtWorld 已提交
80
## 把项目部署到tomcat下的做法
RunAtWorld's avatar
RunAtWorld 已提交
81
```
RunAtWorld's avatar
maven  
RunAtWorld 已提交
82 83
在maven项目目录下: mvn tomcat:deploy
访问: http://localhost:8080/mycontext/ 即可。
RunAtWorld's avatar
RunAtWorld 已提交
84 85 86 87 88 89 90
撤销部署:mvn tomcat:undeploy
启动web应用:mvn tomcat:start
停止web应用:mvn tomcat:stop
重新部署:mvn tomcat:redeploy
部署展开的war文件:mvn war:exploded tomcat:exploded
```

RunAtWorld's avatar
maven  
RunAtWorld 已提交
91
## 其他命令
RunAtWorld's avatar
RunAtWorld 已提交
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
```
生成清除Eclipse项目结构:
mvn eclipse:eclipse
mvn eclipse:clean

清理(删除target目录下编译内容):
mvn clean

仅打包Web页面文件:
mvn war:exploded

打包时跳过测试:
mvn package -Dmaven.test.skip=ture

跳过测试运行maven任务:
mvn -Dmaven.test.skip=true XXX

创建Maven的普通java项目(只适用于Maven2.x版本):
mvn archetype:create -DgroupId=packageName -DartifactId=projectName

创建Maven的Web项目(只适用于Maven2.x版本):
mvn archetype:create  -DgroupId=packageName-DartifactId=webappNameDarchetypeArtifactId=maven-archetype-webapp

创建Maven的Web项目(只适用于Maven3.x版本):  
F:\SoftWare\Maven\MavenWebAppTest>mvn archetype:generate -DgroupId=com.shihuan -DartifactId=S3h3WebWs-DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

创建Maven的Quickstart项目(只适用于Maven3.x版本):
F:\SoftWare\Maven\MavenWebAppTest>mvn archetype:generate -DgroupId=com.shihuan -DartifactId=S3h3WebWs-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
```
RunAtWorld's avatar
RunAtWorld 已提交
121

RunAtWorld's avatar
maven  
RunAtWorld 已提交
122
## 处理maven报错
RunAtWorld's avatar
RunAtWorld 已提交
123 124 125 126
```
清理maven未下载成功的jar包(在maven仓库下执行)
for /r %i in (*.lastUpdated) do del %i 
```