在依赖链开始时执行Maven插件

时间:2014-07-15 17:39:10

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

我有三个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的结构是极端的。

你有什么想法吗?我会感激任何提示。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

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

这将&#34;行动&#34;像一条链子。