2013-05-22 54 views
1

我将对我的自定义maven插件执行多次写入我的项目的pom.xml。我的配置是这样的:指定所有插件执行的默认目标

... 
<build> 
    <plugins> 
    <plugin> 
     <groupId>myGroupId</groupId> 
     <artifactId>pluginId</artifactId> 
     <executions> 
     <execution> 
      <id>ex-1</id> 
      <goals> 
      <goal>goal-name</goal> 
      </goals> 
      <configuration> 
      <option>value_1</option> 
      </configuration> 
     </execution> 
     <execution> 
      <id>ex-2</id> 
      <goals> 
      <goal>goal-name</goal> 
      </goals> 
      <configuration> 
      <option>value_2</option> 
      </configuration> 
     </execution> 
     <!-- quite plenty more executions here --> 
     </executions> 
     <configuration> 
     <commonOption>common_value</commonOption> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 
... 

...所有的maven规范,就像在例子中,它的工作正常。

但是有很多冗余 - 每个执行(其中大约20个)都有自己的目标部分,并且它们都具有完全相同的一个目标。想到自己 - 我会在插件部分指定一个默认值。看着maven POM XML架构和 - 万岁,这是一个选项。我去了以下:

... 
<build> 
    <plugins> 
    <plugin> 
     <groupId>myGroupId</groupId> 
     <artifactId>pluginId</artifactId> 
     <executions> 
     <execution> 
      <id>ex-1</id> 
      <configuration> 
      <option>value_1</option> 
      </configuration> 
     </execution> 
     <execution> 
      <id>ex-2</id> 
      <configuration> 
      <option>value_2</option> 
      </configuration> 
     </execution> 
     <!-- same plenty more executions changed likewise --> 
     </executions> 
     <goals> 
     <goal>goal-name</goal> 
     </goals> 
     <configuration> 
     <commonOption>common_value</commonOption> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 
... 

...和巴姆!它不起作用。 Pom正在被解析,项目被构建,但插件没有执行 - 甚至没有执行过。为什么?我错了,还是什么?缺乏maven功能?错误?

+0

你的插件绑定到哪个生命周期阶段? – khmarbaise

+0

它必然会初始化阶段。我通过调用'mvn initialize'或'mvn install'来测试它。没有用。 –

+0

您是否尝试过'mvn -X install'并深入了解日志文件? – khmarbaise

回答

3

根据Maven Model documentationplugin中的goals元素已被弃用且未被Maven使用。

+0

噢,你是对的。它不仅被弃用,而且被破坏。这就是为什么。感谢您指出了这一点。 –

相关问题