【发布时间】:2019-08-08 07:26:38
【问题描述】:
假设我有一个聚合的 Maven 项目。 com.example:foo:1.0.0 是聚合父 POM,它包含子项目 com.example:bar:2.0.0。我使用nexus-staging-maven-plugin 将它们都发布到 Maven Central。请注意,对于com.example:bar:2.0.0 的版本,我确实不在父POM 中使用依赖管理,即使它是一个子项目。也就是说,这两个版本没有捆绑在一起。
我也在其他项目中使用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) 离开对于可能有相同问题的其他人,这里有一些明确的答案。谢谢。
【问题讨论】:
标签: maven pom.xml parent-pom