2015-08-14 65 views
1

我有父模塊A作爲其依賴項具有模塊B。如果我爲B增加版本只是一個簡單的錯誤修復,這不會改變任何API或破壞任何東西,我仍然需要增加版本A增加依賴模塊版本是否應遞增父模塊版本?

例子:

A:1.10.0 --> B:2.5.0 
fixing B to 2.5.1 

在這種情況下,A Maven的依賴於B舊版本,因此,現在看來,這是有意義的increate的A版本,太;所以有:

A:1.10.1 --> B:2.5.1 

即使我們沒有在A.改變什麼

這是正確的嗎?

回答

1

是的,你是對的。如果您更改任何依賴項的版本,則需要再次構建和釋放父項目。這將創建您的父模塊A的新發布版本。

(這裏,我假設父模塊A的包裝類型不是POM,如果包裝類型是POM,那麼它的完全不同)

編輯:

當您說父項目時,您將聲明其包裝爲pom。它將擁有它自己的版本。

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>parent</artifactId> 
    <version>0.1-SNAPSHOT</version> 
    <packaging>pom</packaging> 

    <modules> 
    <module>web-project</module> 
    </modules> 
</project> 

您還可以在父pom聲明中引用一些模塊(子項目)。

<parent> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>parent</artifactId> 
    <version>0.1-SNAPSHOT</version>  
</parent> 

<artifactId>web-project</artifactId> 
<packaging>war</packaging> 

然後,對於子模塊,不需要爲它聲明任何版本。父版本將被轉移到子項目。您可以在子項目中覆蓋版本,但這不是一種常見的做法。所以當你用maven發佈它時,你的父母版本會自動增加。而這個新版本也將被轉移到子項目(模塊)。

請參閱本 - Maven project version inheritance - do I have to specify the parent version?

所以父模塊A,我指的是上述情況。

和maven回購 - 可以是兩種類型 - 本地存儲庫和遠程存儲庫。本地回購是maven尋找解決依賴關係的地方。這是在你的機器上。如果maven在那裏找不到它,maven會從遠程倉庫中檢索這些依賴項。

+0

嘿@asg,小心解釋一下你的包裝類型是什麼意思? maven回購? – igr

+0

當然。編輯答案。 – asg