【问题标题】:Maven plugin execution at begining of dependency chain在依赖链开始时执行 Maven 插件
【发布时间】:2014-09-06 00:44:15
【问题描述】:

我有三个 maven 项目:A -> B -> C。为了更好地解释情况,我显示了伪 pom.xml:

一个 pom.xml

<groupId>X</groupId>
<artifactId>A</artifactId>
<version>1</version>

B pom.xml

<groupId>X</groupId>
<artifactId>B</artifactId>
<version>1.5</version>
<dependency>
  <groupId>X</groupId>
  <artifactId>A</artifactId>
  <version>1</version>
</dependency>

C pom.xml

<groupId>X</groupId>
<artifactId>C</artifactId>
<version>2.5</version>
<dependency>
  <groupId>X</groupId>
  <artifactId>B</artifactId>
  <version>1.5</version>
</dependency>

我想只在 A 项目中执行 maven 插件,然后在其他(B 和 C)中自动执行,如链,当我在 B 中执行时,在 C 中也将是自动的。问题是在 A 项目中没有关于 B 的信息(我认为)。改变 pom 的结构是极端的。

你知道怎么做吗?如有任何提示,我将不胜感激。

【问题讨论】:

    标签: java maven maven-plugin pom.xml multi-module


    【解决方案1】:

    maven 插件的执行与 maven 构建生命周期的特定阶段相关联,例如,surefire 插件默认绑定到test 阶段

    现在考虑您有一个要在所有项目中作为链执行的插件,您必须create a separate build profile 并在验证阶段之后绑定您的插件执行

    并调用mvn validate,这样它的生命周期将只进入一个阶段(即验证),它会像链一样调用你的插件

    【讨论】:

    • 我有点困惑。我必须向我的用户 maven settings.xml(我认为)添加其他信息,但我看不到如何链接到我的项目(A、B、C)和我的插件来执行。岑你再解释一下?
    【解决方案2】:

    您可以解决此问题的一种方法是(如果您还没有尝试过)是: 使用以下内容保留根 pom.xml: ... ...

    <packaging>pom</packaging>
       <modules>
         <module>A</module>
         <module>B</module>
         <module>C</module>
       </modules>
     ....
     ...
    

    这将像链条一样“发挥作用”。

    【讨论】:

      猜你喜欢
      • 2012-05-23
      • 2012-09-23
      • 1970-01-01
      • 2015-06-20
      • 2021-11-19
      • 2017-11-08
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      相关资源
      最近更新 更多