Nexus3 私服禁止,或者允许 本地包在 maven-releases 包覆盖发布

按照 maven 规范,对仓库中的包使用 snapshot 和 release 进行了区分,前者每次可以覆盖发布,会以时间的方式保留之前的包,并将 snapshot 包依赖下载地址指向最新覆盖发布的包,顾名思义快照包是为了解决我们开发测试过程中反复发布的场景的,所以被定为可以覆盖发布。

那么对于 release 包,确需要特别说明,在互联网上同一个包的同一个版,我们应该认为是唯一的。不应出现在不同地方下载的两个同一个版本的包的内容不一样的情况。所以对 maven 来说没有快照后缀的包被视为 release 正式包。

对于 Nexus 仓库私服而言,在公司开发生产中,大家如果选用了这个仓库,要注意一下。nexus 在创建一个仓库的时候,有一个下拉框是可以配置决定 release 包是否能覆盖发布的,这个地方默认选中的是 Allow redeploy ,是允许覆盖发布的选项,如果不做修改,在未来不知何时某个 release 包被同事修改代码后覆盖发布就麻烦了。

在 Nexus 中具体的界面配置和选项如下图所示,这里我们最好选择 Disable redeploy 以禁止重新发布:

在这里插入图片描述
注:如果在特殊场景下,因为特定原因你确实需要重新发布某个 release 包,你可以选择临时修改这个配置,或者通过先删除需要重新发布的包再进行发布,这两种方式进行覆盖发布。

或者使用snapshot版本
版本区别?
①. SNAPSHOT版本代表不稳定、尚处于开发中的版本,也叫快照版本,是以-SNAPSHOT为结尾的版本号。SNAPSHOT不是一个特定的版本,而是一系列的版本的集合,其中HEAD总是指向最新的快照,对外界可见的一般也是最新版,这种给人的假象是新的覆盖了老的,从而使得使用SNAPSHOT依赖的客户端,总是可以通过重新构建(有时候需要-U强制更新)就可以拿到最新的代码。
②. RELEASE版本则代表稳定的版本,稳定版本。所有的非-SNAPSHOT结尾的版本号则都被认定为RELEASE版本,即正式版,虽然会有beta/rc之类的说法,但是这些只是软件工程角度的测试版,但是对于MAVEN而言,这些都是RELEASE版本。
在java开发过程中,我们经常会看到代码仓库中的某些项目版本以release或snapshots结尾,一般来说snapshots版本代表正在开发中的版本,而release代表比较稳定的发布版本,原因详见此博客中的第五点“pom.xml文件中的快照作用及设置1.0-SNAPSHOT”。

snapshot 快照版本对应开发过程中的版本,特点是快速的迭代更新,同样的版本号对应的是项目在一段时间内的开发过程。正是因为最近一段时间在更新,所以才要使用快照技术,使得在迭代更新时也能让使用本部分代码的程序按照 快照记录时的版本 正常运行。
release 释放版本应该是一个稳定的版本,它应该对应项目在某个时刻的状态 —— 它对应唯一的代码版本。
所以,snapshots版本代表正在开发中的版本,而release代表比较稳定的发布版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

❀͜͡傀儡师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值