2009-12-15 84 views
2

我的項目需要新版maven build插件的功能,其目標爲一些,但新版本因其他目標之一而失敗(由於插件中的錯誤)。作爲一個解決方案,直到bug被修復,我想用舊版本的插件運行破碎的目標。 編輯:更具體地說,我需要使用GWT-Maven的插件版本1.1及所有其他目標與版本1.2快照運行generateAsync目標。Can Maven 2可以在同一個項目中使用兩個不同版本的構建插件嗎?

當我聲明一個單獨的插件版本來執行破碎的目標時,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

您必須而不是在您的POM中聲明兩次相同的插件。有可能的是使用一個<plugin>塊與兩個<executions>但這不會解決你的問題,所以,沒有辦法實現你想要的。

但是你測試GWT-Maven的插件1.2發佈候選?它今天在這裏提供http://people.apache.org/~nicolas/staging/,投票是開放的72小時和測試是受歡迎的。也許你的問題是在這個版本解決了(不知道雖然你沒給的問題太多細節,因爲我沒有發現最近已關閉或打開插件的issue tracker有關gwt:generateAsync任何問題)。

如果您在issue tracker中沒有列出特定問題,那麼似乎是讓人們意識到這一點的最佳時機,尤其是如果您希望它在1.2版本中得到解決的話。球在你的球場上。

+0

也與RC一起失敗。剛剛發佈了一個問題。 –

+0

好主動恕我直言。祝你好運! –

0

我覺得你想找的是插件配置階段元素。 目標元素指示要執行的插件,其目標,階段你想要做什麼它以指示階段應插件的目標執行。

你可以看到更多關於這個here

+0

這些目標都在其默認的生命週期階段運行,並且我很好這一點。問題是我需要使用插件的版本1.1和其他版本的1.2-SNAPSHOT運行一些目標。 –

+0

配置文件會爲你工作嗎? 你將無法一次執行兩個目標,但我想它會比手動更改pom要好得多。 –

+0

是的,我正在考慮配置文件 - 只是希望有一個更清潔的解決方案。 –

相關問題