maven release版本不更新原因分析
来源:互联网 发布:网络银行有几家 编辑:程序博客网 时间:2024/05/22 04:35
问题
有个2.5.1版本的jar包在私服上已经存在,A机器修改代码,但是没有修改版本号,重新上传到私服后,B机器更新不下来,除非B机器删除本地maven仓库中的jar包才能更新下来。
<!--B机器 pom.xml配置--> <dependency> <groupId>com.github.snakerflow</groupId> <artifactId>snaker-core</artifactId> <version>2.5.1</version> </dependency>
初次尝试
最初,以为是更新策略的问题,将release版本配置为总是更新,还是更新不下来。如下,
<!--C:\Users\DELL\.m2\settings.xml--><profile> <id>nexus</id> <repositories> <repository> <id>central</id> <url>http://central</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories></profile>
解决
在《maven实战》P87一书中找到了更新原理。
如果是release版本,首先从本地查找,如果有,则使用本地,否则从远程服务器下载。 因为,本地已存在,所以不会更新。所以,只有删除本地,才能更新到最新。
为了更新不再删除,改了jar的版本号,将jar包的版本号改为2.5.2-SNAPSHOT,同时修改依赖的版本号,就能下载到最新版本了。
拓展
RELEASE
如果版本号配置为RELEASE ,那么用本地MAVEN_REPOSITORY/groupid/artifactid/maven-metadata.xml,与服务器的maven-metadata.xml合并,会使用最大的release版本版本号。
举例,这种情况就会使用最大release版本号2.5.2,而不是2.5.3-snapshot,因为2.5.3-snapshot是快照版本不是发布版本,应该尽量避免使用RELEASE,因为版本是不稳定的。
<dependency> <groupId>com.github.snakerflow</groupId> <artifactId>snaker-core</artifactId> <version>RELEASE</version> </dependency>
<!--本地服务器的maven-metadata.xml--><?xml version="1.0" encoding="UTF-8"?><metadata> <groupId>com.github.snakerflow</groupId> <artifactId>snaker-core</artifactId> <versioning> <release>2.5.1</release> <versions> <version>2.5.1</version> </versions> <lastUpdated>20170908072352</lastUpdated> </versioning></metadata>
<!--远程服务器的maven-metadata.xml--><metadata> <groupId>com.github.snakerflow</groupId> <artifactId>snaker-core</artifactId> <versioning> <release>2.5.1</release> <versions> <version>2.5.1</version> <version>2.5.2</version> <version>2.5.3-SNAPSHOT</version> </versions> <lastUpdated>20170905010758</lastUpdated> </versioning></metadata>
SNAPSHOT
snapshot版本与release,略微不同,它比较的是lastUpdated,哪个新就下载哪个,所以如果版本号是x.x.x-SNAPSHOT,肯定会更新下来。
LATEST
最新版本,则是发布版和快照中,最新的版本,所以,如果version配置为latest,则版本也不是稳定的。
阅读全文
0 0
- maven release版本不更新原因分析
- Android版本更新不成功原因分析
- 米豆网首页快照不更新原因分析
- ListView中notifyDataSetChanged()刷新数据不更新原因分析
- Maven的Snapshot版本与Release版本
- Maven的Snapshot版本与Release版本
- Maven的Snapshot版本与Release版本
- Maven的Snapshot版本与Release版本
- Maven的Snapshot版本与Release版本
- Release版本不能运行的原因
- Release版本编译CView GetDocument失败原因
- maven snapshot和release版本的区别
- apache maven-release-plugin 版本管理方式
- maven snapshot和release版本的区别
- 关于maven版本管理 SNAPSHOT RELEASE(version)
- maven snapshot和release版本的区别
- maven snapshot和release版本的区别
- 【Maven】Snapshot和Release版本的区别
- double vs long double
- maven 快照 更新策略
- TL-WR941N V2 漏洞
- div始终在页面的右边
- 华为上机笔试题 最高分是多少
- maven release版本不更新原因分析
- 彻底理解Redis中有效期的问题
- block的使用和注意事项
- JAVA学习笔记
- POJ
- 最大公约数的相关算法
- chmod权限
- 通用方法 解决/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found的问题
- Python高级编程