我有一个遗留的java项目(A),它包含多个子项目(A.1,A.2 ......),它们都相互依赖。我现在正在将Maven用于未来的项目(B,C ......),但我正在寻找一种方法让我们的CI在每次更改时将这个重新编译的依赖项目(A)推送到我们的存储库中。子项目(A.1,A.2 ......)以不同的方式构建(shell脚本,ant构建等),我已经能够让Maven成功执行这些。
我的问题是,如何让Maven将从这些构建脚本(A.1,A.2 ...)创建的所有jar包捆绑到一个jar(A)中以便发布到repo ?看起来build-helper可能能够做我需要的东西,但似乎我不能使用通配符来存储这些工件。有什么更适合我的情况吗?
编辑:想要澄清总体maven项目(A)没有任何代码或任何入口点。我想做的就是通过使用maven下载(A)将来的项目(B,C ......)来引用包含的项目(A.1,A.2 ......)。这甚至可以吗?将每个子项目(A.1,A.2 ......)独立拆分为maven项目不是一种选择。
答案 0 :(得分:0)
您可以创建一个仅负责捆绑的附加模块,并在其中配置maven-shade-plugin。你的"阴影"模块将依赖于所有其他模块,Maven最终将构建它。
所以这个插件可以创建一个" uber-jar"其中包含来自您个人其他模块的所有内容 - 前提是这些模块首先创建JAR。如果这些是由各种不同的脚本构建的......我不完全确定它们可能会创建什么。
答案 1 :(得分:0)
使用build-helper-maven-plugin
及其attach-artifacts
执行步骤完成构建完成后,使用Maven将预先构建的jar推送到我们的仓库