maven 命令除了常用的几个,大部分经常记不住,整理一下,方便查询。
maven 命令的格式为 mvn [plugin-name]:[goal-name]
,可以接受的参数如下,
-
-D 指定参数,如 -Dmaven.test.skip=true 跳过单元测试;
-
-P 指定 Profile 配置,可以用于区分环境;
-
-e 显示maven运行出错的信息;
-
-o 离线执行命令,即不去远程仓库更新包;
-
-X 显示maven允许的debug信息;
-
-U 强制去远程更新snapshot的插件或依赖,默认每天只更新一次。
Maven常用命令及其作用
命令 | 描述 |
---|---|
mvn clean | 对项目进行清理,删除target目录下编译的内容 |
mvn compile | 编译项目源代码 |
mvn test | 对项目进行测试运行 |
mvn package | 打包文件并存放到项目的target目录下,打包好的文件通常都是编译后的class文件 |
mvn install | (安装项目到本地仓库) 在本地仓库生成仓库的安装包,可供其他项目引用,同时打包后的文件放到项目的target目录下 |
mvn archetype:create | 创建maven项目 |
mvn archetype:generate | 创建maven项目 |
-DgroupId=packageName | 指定 group |
-DartifactId=projectName | 指定 artifact |
-DarchetypeArtifactId=maven-archetype-webapp | 创建web项目 |
mvn validate | 验证项目是否正确 |
mvn package | maven 打包 |
mvn jar:jar | 只打jar包 |
mvn source:jar | 生成源码jar包 |
mvn generate-sources | 产生应用需要的任何额外的源代码 |
mvn test-compile | 编译测试代码 |
mvn verify | 运行检查 |
mvn eclipse:eclipse | 生成eclipse项目 |
mvn eclipse:clean | 清理eclipse配置 |
mvn idea:idea | 生成idea项目 |
mvn:deploy | 发布项目到远程仓库 |
mvn integration-test | 在集成测试可以运行的环境中处理和发布包 |
mvn dependency:tree | 显示maven依赖树 |
mvn dependency:list | 显示maven依赖列表 |
mvn dependency:sources | 下载依赖包的源码 |
mvn install:install-file -DgroupId=packageName -DartifactId=projectName -Dversion=version -Dpackaging=jar -Dfile=path | 安装本地jar到本地仓库 |
web项目相关命令 | |
mvn tomcat:run | 启动tomcat |
mvn jetty:run | 启动jetty |
mvn tomcat:deploy | 运行打包部署 |
mvn tomcat:undeploy | 撤销部署 |
mvn tomcat:start | 启动web应用 |
mvn tomcat:stop | 停止web应用 |
mvn tomcat:redeploy | 重新部署 |
mvn war:exploded tomcat:exploded | 部署展开的war文件 |
场景
- mvn clean install 和 mvn install 的区别
根据maven在执行一个生命周期命令时,理论上讲,不做mvn install 得到的jar包应该是最新的,除非使用其他方式修改jar包的内容,但没有修改源代码
平时可以使用mvn install ,不使用clean会节省时间,但是最保险的方式还是mvn clean install,这样可以生成最新的jar包或者其他包 - maven两种跳过单元测试方法的区别
mvn package -Dmaven.test.skip=true
不但跳过了单元测试的运行,同时也跳过了测试代码的编译mvn package -DskipTests
跳过单元测试,但是会继续编译。如果没时间修改单元测试的bug,或者单元测试编译错误,则使用第一种,不要使用第二种 - mvn clean package
依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段
package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库 - mvn clean install
依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库 - mvn clean deploy
依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库