我有一个遗留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)发布到仓库?它看起来像构建助手可能能够做我需要的,但它似乎不像我可以为这些工件使用通配符。有什么更适合我的情况吗?
编辑:想要澄清的是,总体maven项目(A)没有任何代码或任何入口点。所有我想做的是引用包含的项目(A.1, A.2…)有未来的项目(B, C…)下载(A)使用maven。这真的可行吗?将每个子项目(A.1, A.2…)独立拆分为maven项目是不可行的。
你可以创建一个额外的模块,它只负责打包,并在其中配置maven-shade-plugin。你的"shade"模块将依赖于所有其他模块,Maven最终会构建它。
所以这个插件可以打包一个"超级jar",其中包含了来自你的其他模块的所有东西——前提是这些模块首先创建了jar。如果它们是由各种不同的脚本构建的……我不完全确定他们会创造出什么
最终使用Maven在使用build-helper-maven-plugin
及其attach-artifacts
执行步骤构建完成后将预构建的jar推送到我们的repo