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

Aar*_*rup 5 maven-2

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

当我声明一个单独的插件版本来执行损坏的目标时,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>
Run Code Online (Sandbox Code Playgroud)

Pas*_*ent 4

您不得POM 中两次声明相同的插件。可能的是使用一个<plugin>块和两个块<executions>,但这不能解决您的问题,所以,,没有办法实现您想要的。

但是您测试过 gwt-maven-plugin 1.2 候选版本吗?今天已在http://people.apache.org/~nicolas/staging/上发布,投票开放 72 小时,欢迎测试。也许您的问题在这个版本中得到了解决(不确定,因为您没有提供有关该问题的详细信息,并且我没有在最近关闭或打开的插件的问题跟踪器gwt:generateAsync中找到任何相关问题)。

如果您遇到问题跟踪器中未列出的特定问题,那么现在似乎是让人们意识到它的最佳时机,特别是如果您希望在 1.2 版本中解决该问题。球在你的球场上。