2014-01-17 48 views
1

我看了一下關於這個話題的前幾個問題,看來人們在我目前所處的位置上前進了一步。 我目前正在嘗試將Maven發行版插件用於我的多模塊項目。我從頭開始(更確切地說,我檢索了一些舊項目,以放入一個新的多模塊項目)。如何在使用快照的Maven多模塊項目中默認子模塊版本?

我有一個POM父母,我的定義是:

<groupId>com.somestuff</groupId> 
<artifactId>stuff</artifactId> 
<version>10.0.0-SNAPSHOT</version> 
<packaging>pom</packaging> 
<name> stuff </name> 

我的子模塊繼承使用父:

<parent> 
    <groupId>com.somestuff</groupId> 
    <artifactId>stuff</artifactId> 
    <version>10.0.0-SNAPSHOT</version> 
</parent> 

所以,因爲它是一個新的項目,我指定模塊,之間的依賴關係快照。例如,如果模塊A依賴模塊B,我會添加到A的POM部分:

<dependencies> 
    <dependency> 
     <groupId>com.somestuff</groupId> 
     <artifactId>divarmiclient</artifactId> 
    <version>10.0.0-SNAPSHOT </version> 
    </dependency> 
    </dependencies> 

的結果是,當我嘗試做一個「MVN發佈:準備」,Maven會嚷嚷,有快照依賴。但是由於這是一個全新的項目,並且10之前的版本不存在,所以我不知道如何默認模塊的版本值。 我的問題是,我該如何默認模塊值?我怎樣才能讓我的多模塊項目可以從快照的角度來接受?

+0

我希望你的父母含有' divarmiclient/'? – khmarbaise

+0

是的,還有所有其他模塊。 – user3206745

+0

如果這是我認爲別的錯誤的方式,但我不能猜測沒有整個POM文件... – khmarbaise

回答

5

爲了澄清,你說你的結構是:

theparent 
    pom.xml 
    A/ 
    pom.xml 
    B/ 
    pom.xml 

而下面的假設都成立:

  • 所在的當前,A和B是目前同一版本
  • 版本將始終從「父母」級別啓動,因此他們保持在同一版本
  • A取決於B,方式相同版本

然後將溶液如下:

<dependency> 
    <groupId>com.somestuff</groupId> 
    <artifactId>B</artifactId> 
<version>${project.version}</version> 
</dependency> 
+1

非常感謝。這是我需要知道的! – user3206745

+0

這也適用於我,謝謝。 –

相關問題