我们使用 Eclipse + Maven 插件从 Nexus 获取库,这很好。我们还将我们的内部库放在 Nexus 上。
当我们向 Nexus 发布新版本的库时,我们想让旧版本被“弃用”,这可能吗?例如,使用Eclipse的Maven插件时,他选择了旧版本,Eclipse显示“it's deprecated”。
因为一些旧系统仍然需要旧版本,所以我们不能直接从 Nexus 中删除它。但是我们不希望新系统使用旧版本。
您可以通过maven-enforcer-plugin添加规则以防止使用旧版本,但只能通过所有新项目必须使用的公司 pom。
没有办法在 Maven 中“弃用”一个版本。
这样做的原因是旧版本仍然有效 - 旧项目仍然使用它并且他们很高兴。通常不需要强制项目升级。
此外,Nexus(默认情况下并且有充分的理由)不会让您更改已发布的 POM。
您需要的是一种传达人们现在应该使用的最佳版本的方法。正确的方法是建立一个网站。只需在 POM 的元素中添加 URL <url>
,人们就可以轻松找到它。
此外,您可以使用mvn versions:display-dependency-updates
和mvn versions:display-plugin-updates
从版本插件获取具有比您更高版本的依赖项列表。
您不想将其从 Nexus 中删除。如果有人想要构建您的软件的旧版本,会发生什么?
我宁愿使用 Java 的方法/类弃用方法,并在你的新库版本中弃用旧的 API 调用。