问题是,在我们公司,我们有一个包含多个子模块的项目,但是其中一个子模块只是 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/