2012-05-28 101 views
0

我想使用maven release插件首次發佈多模塊maven項目。我在發佈時面臨一個問題:準備步驟,因爲我有SNAPSHOT依賴關係。發佈maven項目自動刪除SNAPSHOT依賴關係

<project ...> 

    <parent> 
     <artifactId>project</artifactId> 
     <groupId>ccc.aaa.bbb</groupId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 

    <artifactId>common</artifactId> 
    <packaging>pom</packaging> 
    <name>common</name> 

    <modules> 
    <module>daoModule</module> 
    <module>configModule</module> 
    <module>exceptionModule</module> 
    </modules> 

    <scm> 
    ...  
    </scm> 
    <distributionManagement> 
     <repository>...</repository> 
     <snapshotRepository>...</snapshotRepository> 
    </distributionManagement> 
</project> 

和模塊擴展此作爲其父:

<project ...> 
<parent> 
    <artifactId>common</artifactId> 
    <groupId>ccc.aaa.bbb</groupId> 
    <version>0.0.1-SNAPSHOT</version> 
</parent> 

<artifactId>exceptionModule</artifactId> 
    <name>exceptionModule</name> 

<build> 
     ... 

插件改變神器0.0.1-SNAPSHOT版本的發行版本0.0.1,並創建新的快照版本ID 0.0.2-SNAPSHOT。

¿是否有任何方法可以自動將父母的版本從0.0.1-SNAPSHOT更改爲0.0.1 - 即將創建的版本 - ?

謝謝。

回答

1

從包含所有你感興趣的模塊聚合項目水平做release:prepare時,它應該工作。所以,你commonproject文物和所有模塊應立即被釋放。也可以看看autoVersionSubmodules開關做少一點打字。

+0

在做發佈時:從聚合器項目準備是因爲發佈失敗的第二步:準備檢查是否沒有SNAPSHOT依賴項[鏈接](http://maven.apache.org/plugins/maven -release-plugin/examples/prepare-release.html)。如果在創建工件時父級的版本屬性不是繼承,我將檢查autoVersionSubmodules。 Thx – bleras

+0

是的,我知道它,但這些'SNAPSHOT'依賴由模塊內部的模塊繼承,應該解決得更聰明一點。爲我工作了好幾年。我的大部分項目都是多模塊,我通常以這種方式釋放它們。一個要求:所有這些項目必須在同一個建造反應堆內一次建造! –

+0

你說得對,我的問題是我沒有在同一個反應器中的所有項目,因爲我想避免內存問題。我已經做了一些測試,在同一個反應堆內構建項目,並且插件工作正常。我會嘗試找到一些手動解決方法......感謝您的幫助! – bleras