【问题标题】:Skipping a Maven module that's already been published to Maven Central跳过已经发布到 Maven Central 的 Maven 模块
【发布时间】: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


    【解决方案1】:

    AFAIK,nexus-staging-maven-plugin 没有用于分离或忽略某些工件的用户属性。

    您也许可以编写自己的插件来获取 Maven 项目并从中消除某些工件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-11
      • 2021-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 1970-01-01
      相关资源
      最近更新 更多