【问题标题】:Maven build orderMaven 构建顺序
【发布时间】:2012-10-09 10:23:37
【问题描述】:

我有一个多模块 maven 构建,我需要一个特定的模块(我们称之为 project-A)在最后构建。它依赖于一个模块(我们称之为 project-B),该模块包含被编译为 dll 并使用一些 maven 技巧作为 zip 文件安装到 maven 存储库中的本机代码。因为它不直接依赖它,因为本机代码不是 java jar,所以我使用 Maven 依赖插件解压缩 zip 文件并将本机 dll 放在我的构建目录中。除了建筑订单外,一切正常。它构建了第一个项目-A,尽管在父标签中以相反的方式声明。我想告诉 maven 项目-A 依赖于项目-B。我尝试将 project-B 添加为依赖项,但是由于它没有构建 jar,因此会引发错误,这对我来说也很棘手。任何帮助,将不胜感激。

【问题讨论】:

    标签: maven


    【解决方案1】:

    只需在项目 A 中声明对项目 B 的依赖关系,它就可以正常工作。如果项目 B 是本机项目而不是 java 项目,则无关紧要。只需确保您正确声明依赖项,将包装考虑为类型..(可能是pom,所以您会拥有

    <dependency>
      <groupId>...</groupId>
      <artifactId>B</artifactId>
      <version>...</version>
      <type>pom</type>
    </dependency>
    

    在项目 A 中)

    【讨论】:

    • 我错过了 标签,之后,我可以管理反应堆的顺序。项目B是一个包含一堆项目的模块,我不得不一个一个地添加它们。有没有一种方法可以让我只引用父项而不是单独引用每个项目?
    • 您应该添加依赖项,代码如何指示它,现在您的构建/模块设置如何使其看起来很方便。然后一切都会正常工作,并且在您的代码中使用干净的依赖项,您的项目设置也将是干净的;-)
    • 此外,类型可能是类似 so 或 bin,具体取决于您的本机代码构建的设置方式。如果项目 b 是父项目,您可能不应该声明对它的依赖,而是声明您实际依赖的模块,就像您所做的那样......
    【解决方案2】:

    在父 Pom 中指定模块的顺序也是相关的。 Maven 实际上是按照这个顺序构建的,除非它因为直接依赖而不得不乱序构建模块。

    【讨论】:

    • 这就是我的想法,但这并没有起到作用,现在它工作正常,但我必须将每个项目添加为依赖项。如果项目之间没有明确的依赖关系,我不知道为什么 Maven Reactor 会忽略模块标签中的顺序。
    猜你喜欢
    • 2014-05-03
    • 1970-01-01
    • 2013-09-08
    • 2012-06-23
    • 1970-01-01
    • 2023-03-12
    • 2011-09-29
    • 1970-01-01
    相关资源
    最近更新 更多