将目标绑定到Maven插件中的阶段

时间:2013-12-06 10:15:51

标签: java maven maven-plugin

假设我有5个与Mojos相关联的目标,我希望能够绑定,从目标-a到目标-e。

我希望能够像maven生命周期阶段一样绑定它们,即如果我定义了一个执行路径并且我调用了一个目标,那么此路径上的所有先前目标都会事先执行。

然后我会:

goal-a -> { goal-b -> goal-d
          { goal-c -> goal-e

因此,如果我运行mvn groupdId:artifactId:myPlugin:goal-d,则会执行goal-agoal-bgoal-d。 如果我使用goal-e运行相同的命令,则会执行goal-agoal-cgoal-e

有没有办法定义这样的绑定?

2 个答案:

答案 0 :(得分:1)

您可以非常轻松地编写自定义插件,以便使用Mojo Executor完成您要查找的内容。

例如,您可以为目标-d编写Mojo,并且在其中,您可以使用Mojo Executor执行目标-a和目标-b Mojos。

答案 1 :(得分:0)

您可以将插件的执行添加到<build>块中,或者为其运行创建单独的配置文件,并定义所有目标。这是一个例子:

<build>
    <plugins>    
        <plugin>
           <groupId>your.plugin.group.id</groupId>
           <artifactId>your-plugin-artifact-id</artifactId>
           <executions>
               <execution>
                  <!-- here you need to specify build phase where your plugin execution will be started -->
                  <phase>install</phase>
                  <!-- here you can add all your goals to execute -->                            
                  <goals>
                      <goal>goal-a</goal>
                   </goals>
               </execution>
           </executions>
        </plugin>
   </plugins>
</build>

当您在项目上执行阶段install时,您的插件将执行其目标。