maven - 跳过已经发布到 Maven Central 的 Maven 模块
问题描述
假设我有一个聚合的 Maven 项目。com.example:foo:1.0.0
是聚合的父 POM,它包含子项目com.example:bar:2.0.0
。我使用nexus-staging-maven-plugin
. 请注意,即使它是一个子项目,我也没有在父 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)留下一些明确的答案在这里为其他可能有同样问题的人。谢谢你。
解决方案
AFAIK,nexus-staging-maven-plugin
没有用户属性来分离或忽略某些工件。
您也许可以编写自己的插件来获取 Maven 项目并从中消除某个工件。
推荐阅读
- date - 如何在 Power Query M 中按给定日期查找 4 周滚动周期的周数
- android - Firebase 应用数据收集是否需要在 Play 管理中心的数据安全表单中声明?
- python - 从 RealSense 数据生成 Open3D 中的 PointCloud 对象
- html - 使用 a:visited 设置相邻/兄弟元素的样式不起作用
- mysql - 如何在 MySQL 中的 Cursor 中后退一步
- jsonnet - 如何在 jsonnet 中进行正确的 for 循环?
- python - C#:返回语句末尾的生成器
- javascript - Postman - 从 HTML 描述列表中提取值
- php - 检查 isset($_POST["submit"]) 两次不起作用
- flutter - _TypeError(类型'Null'不是'String'类型的子类型)在颤动