MAVEN发布固定版本(不需要更改pom更新依赖的方法) -- 自动更新SNAPSHOT

来源:互联网 发布:软件应用的英文 编辑:程序博客网 时间:2024/05/17 07:09
接触Maven有几年时间了,不得不说,它是个好东西,一旦接触之后就有种爱不释手的感觉。 
最近在开发中遇到一个疑问,开发阶段的依赖中往往更改一小丁点东西都需要升级版本发布,十分繁琐。 

对此查了很多资料,国内的资料十分有限,看来国内还很少有朋友遇到这个问题,大家应该都是使用升级版本更新依赖的方式。 

上了官网查查资料,还真有解决方案。 

首先要分清楚Snapshot和Release的区别 

maven中的仓库分为两种,snapshot快照仓库和release发布仓库。snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本。定义一个组件/模块为快照版本,只需要在pom文件中在该模块的版本号后加上-SNAPSHOT即可(注意这里必须是大写), 

如 
Java代码  收藏代码
  1. <groupId>org.quinn</groupId>  
  2.     <artifactId>accounts</artifactId>  
  3.     <version>0.0.1-SNAPSHOT</version>  
  4.     <packaging>jar</packaging>  


修改setting.xml的发布部分如下设置 

Java代码  收藏代码
  1. <profile>  
  2.             <id>dev</id>  
  3.   
  4.             <repositories>  
  5.   
  6.                 <repository>  
  7.   
  8.                     <id>nexus</id>  
  9.   
  10.                     <url>http://ip:8081/nexus/content/groups/public</url>  
  11.   
  12.                     <releases>  
  13.   
  14.                         <enabled>true</enabled>  
  15.   
  16.                     </releases>  
  17.   
  18.                     <snapshots>  
  19.   
  20.                         <enabled>true</enabled>  
  21.                         <updatePolicy>always</updatePolicy>  
  22.                         <checksumPolicy>warn</checksumPolicy>  
  23.   
  24.                     </snapshots>  
  25.   
  26.                 </repository>  
  27.   
  28.             </repositories>  
  29.   
  30.             <pluginRepositories>  
  31.   
  32.                 <pluginRepository>  
  33.   
  34.                     <id>nexus</id>  
  35.   
  36.                     <url>http://ip:8081/nexus/content/groups/public</url>  
  37.   
  38.                     <releases>  
  39.   
  40.                         <enabled>true</enabled>  
  41.   
  42.                     </releases>  
  43.   
  44.                     <snapshots>  
  45.   
  46.                         <enabled>true</enabled>  
  47.                         <updatePolicy>always</updatePolicy>  
  48.                         <checksumPolicy>warn</checksumPolicy>  
  49.   
  50.                     </snapshots>  
  51.   
  52.                 </pluginRepository>  
  53.   
  54.             </pluginRepositories>  
  55.   
  56.         </profile>  


可以看到我在snapshot下面加了如下设置 

Java代码  收藏代码
  1. <enabled>true</enabled>  
  2.                         <updatePolicy>always</updatePolicy>  
  3.                         <checksumPolicy>warn</checksumPolicy>  


看下maven官方对这个属性做出的解释,重点就是updatePolicy属性 




enabled设置为true 

updatePolicy更新snapshot包的频率,属性有四个值always(实时更新) daily(每天更新) interval:xxx(隔xxx分钟更新一次)  never(从不更新) 默认为daily 

checksumPolicy为warn 

如果是使用eclipse开发,集成了maven插件的,还需要做如下事情。 

Window>Preferences>Maven>User Settings>Update Settings 

完成以上操作可完成无需更改版本发布,依赖方也不需要更改pom,只需执行一下mvn clean install 即可完成依赖更新