【问题标题】:Converting legacy project to Maven by bundling multiple jars通过捆绑多个 jar 将遗留项目转换为 Maven
【发布时间】:2015-09-21 23:45:50
【问题描述】:

我有一个遗留的 java 项目 (A),其中包含多个相互依赖的子项目 (A.1、A.2...)。我现在将 Maven 用于未来的项目(B、C...),但我正在寻找一种方法,让我们的 CI 每次进行更改时都将这个重新编译的依赖项项目(A)推送到我们的存储库中。子项目(A.1、A.2...)以不同的方式构建(shell 脚本、ant build 等),我已经能够让 Maven 成功执行这些。

我的问题是,如何让 Maven 将从这些构建脚本(A.1、A.2...)创建的所有 jar 捆绑到一个 jar (A) 中以发布到 repo ?看起来 build-helper 可能能够做我需要的事情,但我似乎不能对这些工件使用通配符。有什么更适合我的情况吗?

编辑:想要澄清总体 maven 项目 (A) 没有任何代码或任何入口点。我想做的就是通过使用maven下载未来的项目(B,C ...)来引用包含的项目(A.1,A.2 ...)。这甚至可行吗?将每个子项目(A.1,A.2...)独立拆分为 Maven 项目不是一种选择。

【问题讨论】:

    标签: java maven ant


    【解决方案1】:

    您可以创建一个额外的模块来处理捆绑并在其中配置maven-shade-plugin。您的“阴影”模块将依赖于所有其他模块,Maven 将最终构建它。

    因此,这个插件可以创建一个“uber-jar”,其中包含来自您的各个其他模块的所有内容——前提是这些模块首先创建了 JAR。如果这些是由各种不同的脚本构建的……我不完全确定它们会创建什么。

    【讨论】:

      【解决方案2】:

      在使用 build-helper-maven-plugin 及其 attach-artifacts 执行步骤构建完成后,最终只使用 Maven 将预构建的 jar 推送到我们的仓库

      【讨论】:

        猜你喜欢
        • 2012-09-03
        • 1970-01-01
        • 2013-09-02
        • 2012-07-24
        • 2020-06-23
        • 2017-03-25
        • 2017-10-19
        • 2013-10-29
        • 2012-09-23
        相关资源
        最近更新 更多