java - 将maven子模块部署到存储库以供其他项目使用(没有父模块)

标签 java jakarta-ee maven

问题是,在我们公司,我们有一个包含多个子模块的项目,但是其中一个子模块只是 API 声明的集合,供其他(第 3rd praty)项目使用。我想将其保留为子模块,因为更容易维护和构建(依赖项和属性继承)。该项目中的其他子模块也依赖于它。

我的问题是,是否存在一个好的实践或一个好的方法来执行部署阶段,将这个子模块上传到不同的存储库(也可以复制),而不依赖于父pom .

我已经尝试过: 我已经检查了部署:部署文件,但问题是涉及快照构建时。我们希望能够发布 SNAPSHOTS 和发布版本,并且快照与发布版本具有不同的存储库,但部署文件目标只能有一个 url 参数。我不想使用不同的配置文件进行快照部署。如果版本是快照,我尝试使用 maven build-helper 及其正则表达式属性来更改存储库 url,但由于插件和正则表达式限制而无法这样做。

最后一个选择是我可以为此制作一个插件,但我想知道是否有一种更优雅的方法来解决这个“maven way”。

最佳答案

您可以单独部署此模块,但仅限于快照版本,这是没有意义的。模块的部署可以通过以下方式完成:

mvn -pl TheModuleYouWouldLikeToDeploy deploy

可能您需要添加选项 -am (也生成依赖项),例如:

mvn -am -pl TheModuleYouWouldLikeToDeploy deploy

除此之外,您的方法听起来是错误的,因为如果您使用多模块构建,为什么不通过 mvn deploy 部署整个构建?也许通过像 Jenkins 这样的 CI 工具来完成这项工作会更好。

关于java - 将maven子模块部署到存储库以供其他项目使用(没有父模块),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13289991/

相关文章:

java - maven 使用 --add-exports 运行和构建

spring - Intellij 无法运行具有特定依赖项的 Spring 应用程序

maven - 如何让maven war插件创建多个war文件

java - Swig:将 Java 中的字节数组传递给 C

jakarta-ee - Instagram API 错误 500 个带有强制签名的 UTF-8 主题标签

在 jena 中运行 sparql 查询时出现 java.lang.InstantiationError

google-app-engine - 替代 GAE 上的 ImageIO 类?

java - 如何允许单个方法使用多个 @JmsListener 目的地

java - 这个 while 循环有什么问题?

Java如何启动游戏回合类来存储回合数据