首页 > 技术文章 > Maven命令

huasky 2019-02-28 11:01 原文

Maven的jar库:

http://repo2.maven.org/maven2/

Maven依赖版本官网查询:

http://mvnrepository.com/

 

1、compile,package,install,deploy

mvn clean compile依次执行了clean、resources、compile等3个阶段;

mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段;

mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段;

mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。

由上面的分析可知主要区别如下,

compile命令完成了项目编译功能;

package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库;

install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库;

deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库 

一般,我们常跳过单元测试(package/install/deploy),如下:

mvn package -Dmaven.test.skip=true

 2、deploy到远程maven私服

#修改版本
  mvn versions:set -DnewVersion=xxx
#回滚版本,提交后不能回滚
  mvn versions:revert
#提交版本变更
  mvn versions:commit

snapshot快照库和release发布库

snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本;

maven会根据模块的版本号(pom文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本;

如果是快照版本,那么在mvn deploy时会自动发布到快照版本库中,而使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,maven会自动从镜像服务器上下载最新的快照版本;

如果是正式发布版本,那么在mvn deploy时会自动发布到正式版本库中,而使用正式版本的模块,在不更改版本号的情况下,编译打包时如果本地已经存在该版本的模块则不会主动去镜像服务器上下载。

 

推荐阅读