Maven 2可以在同一个项目中使用两个不同版本的构建插件吗?

时间:2009-12-15 17:43:29

标签: maven-2

我的项目需要一个新版本的maven构建插件的功能,用于某些的目标,但新版本在其他目标之一上失败(由于插件中的错误)。作为一个解决方法,直到错误修复,我想用旧版本的插件运行破碎的目标。 编辑:更具体地说,我需要使用版本1.1的gwt-maven-plugin和版本1.2-SNAPSHOT的所有其他目标运行generateAsync目标。

当我声明一个单独的插件版本来执行破碎的目标时,Maven仍然使用破碎的版本。 有没有其他方法可以解决这个问题?

<plugin>
 <groupId>org.codehaus.mojo</groupId>
 <artifactId>gwt-maven-plugin</artifactId>
 <version>1.1</version>
   <executions>
     <execution>
       <goals>
         <!-- this goal is broken in 1.2-SNAPSHOT -->
         <goal>generateAsync</goal>
       </goals>
     </execution>
   </executions>
   ...
 </plugin>
 <plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>gwt-maven-plugin</artifactId>
   <version>1.2-SNAPSHOT</version>
   <executions>
     <execution>
       <goals>
         <goal>compile</goal>
         <!-- <goal>generateAsync</goal> -->
         <goal>test</goal>
       </goals>
     </execution>
   </executions>
   ...
</plugin>

2 个答案:

答案 0 :(得分:2)

您必须在POM中两次声明相同的插件。可能的是使用一个<plugin>块和两个<executions>,但这不会解决您的问题,因此,没有,无法实现您想要的效果。< / p>

但是你测试了gwt-maven-plugin 1.2发布候选版本吗?它已于今天在http://people.apache.org/~nicolas/staging/发布,投票开放时间为72小时,欢迎进行测试。也许您的问题已在此版本中得到解决(不确定,因为您没有提供有关问题的详细信息,因为我没有在插件的issue tracker中找到与gwt:generateAsync相关的任何问题最近关闭或开放)。

如果您有issue tracker中未列出的特定问题,那么似乎是让人们了解它的最佳时机,特别是如果您希望在1.2版中解决它。球在你的球场上。

答案 1 :(得分:0)

我认为您所寻找的是插件配置中的阶段元素。 目标元素指示您要执行的插件的目标,阶段执行您想要的操作,以指示插件的目标应在哪个阶段执行。

您可以详细了解此here