Maven/Gradle
开发环境一般用快照版本,注意项目pom.xml中的配置,需要开启snapshots 可以参考,新入门请一定看一下这个配置》》》【启用maven中央库的SNAPSHOT版本依赖】
为什么快照版本(SNAPSHOT)不用镜像代理?
因为快照版本经常更新,代理作不到实时同步,有可能几天后才会同步中央库,所以代理上没有最新的快照版本,有可能会下载失败或下载了旧版本
什么情况下需要阿里云镜像?
只有第一次配置maven环境时,或有spring等有大版本更新时,才需要镜像加速,因为需要下载许多jar,以后几乎就用不着了,每次下载不了几k的文件,加不加速没什么影响,但阿里云同步中央库有可能延迟几天,所以有些版本在阿里云上可能不全
为什么用了阿里云镜像代理成功下载了SNAPSHOT版本?
有可能是因为其他项目(如anyline-simple-*)中配置限了SNAPSHOT相关的仓库地址,在其他项目运行时下载了SNAPSHOT版本,所以并不是从阿里云镜像上下载的。
为什么SNAPSHOTS版本没有刷新?
有可能IDEA没有开启Always update snapshots(setting>Build, Execution,Deployment>Build Tools>Maven右侧选项)
还有可能是项目中没有【启用快照】(maven默认禁用了快照),如果没有启用快照也成功下载了快照jar,那一定是其他开启过快照的项目下载的,所以刷新当前项目快照不会更新
如果实现更新不了找到本地jar删除一下,删除或刷新时先把应用关掉,否则文件被占用可能导致刷新或删除失败
什么情况下才需要用到私服?
通常情况下不需要私服,用中央库就可以,但中央库有个问题是版本更新比较慢,至少要1个小时,生产环境发现问题需要紧急修复的时候,用私服几分钟就可以发布新版本了。
参考【anyline私服】
配置文件参考【POM】
刚刚搭建的简易测试环境注意【以provided形式依赖的库】
中央最新版本查看:
http://mvnrepository.com/artifact/org.anyline/anyline-core
或
http://central.sonatype.com/artifact/org.anyline/anyline-core
或
http://repo.maven.apache.org/maven2/org/anyline/anyline-core/
快照版本在这里查看,主要看最后的lastUpdated确认一下最新日期
http://oss.sonatype.org/content/repositories/snapshots/org/anyline/anyline-core/maven-metadata.xml
开发过程一般什么快照版本,为了保证快照版本的及时更新,可以打开IDEA的file/setting/Build, Execution, Develoyment/Build Tools/Maven选中Always update snapshots
更新快照的最新版本可以在这里查看(替换红色部分)
http://oss.sonatype.org/content/repositories/snapshots/org/anyline/anyline-core/8.7.2-SNAPSHOT/maven-metadata.xml
看其中任意一个snapshotVersion.value如<value>8.7.2-20240110.042344-92</value>应该与本地文件名一致
对照本地maven仓库中的org\anyline\anyline-core\8.7.2-SNAPSHOT\anyline-core-8.7.2-20240110.042344-92.jar
与jdk,spring版本的对应关系
anyline | jdk | spring | spring boot |
8.7.2 | 8 | 5 | 2 |
8.7.2-jdk17 | 17 | 6.0.10 | 3.1.11 |
6.1.11 | 3.3.2 | ||
8.7.2-jdk21 | 21 | 6.0.10 | 3.1.11 |
6.1.11 | 3.3.2 |
springframework/spring boot版本(注意spring 6.0与6.1不兼容,一定不要混用,8.7.2-jdk17/21默认依赖的spring6.0.10, 如果需要6.1.11在pom中添加spring依赖是指定版本号即可
)