2012-10-15 114 views
1

我試圖重寫部署插件Maven和得到我的一些項目出現以下錯誤而不是其他:Maven部署插件覆蓋錯誤?

Execution default-deploy of goal org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy failed: Cannot add two different pieces of metadata for:

這裏是我的插件定義:

<plugin> 
    <artifactId>maven-deploy-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>default-deploy</id> 
     <phase>deploy</phase> 
     <goals> 
     <goal>deploy</goal> 
     </goals> 
     <configuration> 
     <pomFile>target/modified-pom-replacePomPlaceholder/modified-pom/pom.xml</pomFile> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

也試過這個以相同的效果:

<plugin> 
    <artifactId>maven-deploy-plugin</artifactId> 
    <configuration> 
    <pomFile>target/modified-pom-replacePomPlaceholder/modified-pom/pom.xml</pomFile> 
    </configuration> 
</plugin> 

任何想法爲什麼它有時會失敗?

+0

如果只有你想覆蓋的是替代POM文件,你應該刪除'所有',只是把'<配置>'下面插件座標。 –

+0

同樣的錯誤。我認爲這可能與該項目中的flexmojos-maven插件有關。 –

+0

你可以嘗試評論它,並檢查是否有幫助。您也可以嘗試通過明確指定來升級/降級'deploy'插件版本。 –

回答

0

也許有點晚,但在這裏我的假設:

運行maven與調試輸出,例如, MVN清潔部署-X,然後檢查調試輸出,尤其是以下兩行:

[DEBUG] (f) pomFile = /home/rotscher/projects/localswap/localswap-web/target/pom.xml 
    [DEBUG] (f) project = MavenProject: ch.rotscher.localswap:localswap-web:1 @ /home/rotscher/projects/localswap/localswap-web/target/pom.xml 

的路徑應(根據java.io.File.equals)是平等。 所以,我想您的解決方案可能是與 $ {BASEDIR}配置的路徑pomFile

<plugin> 
     <artifactId>maven-deploy-plugin</artifactId> 
     <configuration> 
      <pomFile>${basedir}/target/modified-pom-replacePomPlaceholder/modified-pom/pom.xml</pomFile> 
     </configuration> 
     </plugin> 
1

不要重寫 '默認部署'。停用它,寫自己:

<execution> 
    <id>default-deploy</id> 
    <phase>none</phase> 
</execution> 
<execution> 
    <id>my-deploy</id> 
    <phase>deploy</phase> 
    <goals> 
    <goal>deploy</goal> 
    </goals> 
    ... 
</execution>