已经发布到Maven Central的Maven模块如何跳过构建

3
假设我有一个聚合的Maven项目。com.example:foo:1.0.0是聚合父POM,它包含子项目com.example:bar:2.0.0。我使用nexus-staging-maven-plugin将它们都发布到Maven中央仓库。请注意,我在父POM中没有使用依赖管理来管理com.example:bar:2.0.0的版本,即使它是一个子项目。也就是说,这两个版本没有任何联系。
我还在其他项目中使用com.example:foo:1.0.0作为父POM,因此我希望它的坐标不会不必要地改变(例如,即使内容没有改变,也不会使用不同的坐标多次发布)。
结果发现com.example:bar:2.0.0经常更改,因此我想发布com.example:bar:2.1.0。但是我将从该存储库的聚合父POM com.example:foo:1.0.0中构建。即使父POM未更改,而且版本之间没有任何关联,我是否必须增加父POM的版本?我希望nexus-staging-maven-plugin可以简单地认识到com.example:foo:1.0.0已经发布过,跳过它,然后继续并发布com.example:bar:2.1.0
此问题还扩展到已经发布的同级模块。是否有一些方法可以配置nexus-staging-maven-plugin以跳过已经发布的模块,但继续构建和发布其他尚未发布的同级项目?
从这个简化的示例中,我相信有人会想回答:“但是你不应该这样做”。在我的更复杂的示例中,有理由按照我解释的方式进行操作;此外,即使那个回答仍然没有解答实际问题。
我也意识到我可以进行一些测试来查看发生了什么,也许我会这样做,但我在此发布问题的原因是:1)获得权威答案;2)促进讨论选项;3)为可能有相同问题的其他人留下一些明确的答案。谢谢。
1个回答

0
据我所知,nexus-staging-maven-plugin插件没有用户属性可以分离或忽略某些构件。
您可能可以编写自己的插件,以获取Maven项目并从中删除某个特定构件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接