2013-05-28 39 views
2

如果我有一个Maven插件的多次执行并且它们共享至少一个相同的配置值,我是否有办法在插件的所有执行之间共享此配置。多个插件执行之间的Maven共享配置

考虑构建插件的琐碎情况下有两个执行:

<plugin> 
    <!-- ID, version... --> 
    <executions> 
     <execution> 
      <id>ID1</id> 
      <configuration> 
       <myConfig>foo</myConfig> 
       ... 
      </configuration> 
     </execution> 
     <execution> 
      <id>ID2</id> 
      <configuration> 
       <myConfig>foo</myConfig> 
       ... 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

我怎么能改写这个这样既ID1ID2执行使用的myConfig配置相同的值?

+0

这应该是实际读取 ID2为第二个? (如果是这样,那么它会回答我的问题,这不是你问的问题,但显示了如何解决当我在同一插件中使用两个执行来构建我的jar时出现的错误:)) –

+0

在我自己的代码中进行了测试使用相同的id,它会抛出重复的execution.id错误。编辑此问题以显示执行ID必须不同。 –

回答

4

为什么不动了具体的执行外常见的配置?

<plugin> 
    <!-- ID, version... --> 
    <configuration> 
     <commonConfig>foo</commonConfig> 
    </configuration> 
    <executions> 
     <execution> 
      <id>ID1</id> 
      <configuration> 
       <specificConfig>bar</specificConfig> 
      </configuration> 
     </execution> 
     <execution> 
      <id>ID1</id> 
      <configuration> 
       <specificConfig>baz</specificConfig> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

它适用于一些插件我使用(例如gmaven-插件)和Maven documentation我还没有发现任何证据表明它不应该工作。

+0

这似乎不适用于'exec-maven-plugin'。为执行定义配置时,将忽略任何外部配置。 –

1

被设置这样的地方使用属性之前,它们被用于:

<project> 
    ... 
    <properties> 
     <myConfig>foo</myConfig> 
    </properties> 
    ... 
</project> 

然后使用它像这样

<execution> 
    <id>ID1</id> 
    <configuration> 
     <myConfig>${myConfig}</myConfig> 
     ... 
    </configuration> 
</execution> 
<execution> 
    <id>ID2</id> 
    <configuration> 
        <myConfig>${myConfig}</myConfig> 
         ... 
    </configuration> 
</execution> 
+0

感谢您的回答,但说​​实话,我已经在标签上做了这个确切的行为。相反,我正在寻找一种方法来在多个执行之间共享标记。 – ecbrodie

+0

虽然这似乎是合理的,我知道没有办法做到这一点。 –

相关问题