2015-09-03 167 views
2

那麼我正在研究一個公司的POM Maven結構。我想要一個像下面的例子一樣的結構。現在我有兩個問題!公司Maven POM嵌套結構

  • 這是可能的項目調用父pom? (考慮到 它們都安裝在本地Maven存儲庫中)。
  • 如果我向公司POM添加一個許可證塊,是否必須將 項目POM添加一個新的許可證塊?

歡迎各位反饋意見,建議等。先謝謝你!

公司

公司POM

包含組織信息,而不是太多。

<groupId>org.company</groupId> 
<artifactId>company</artifactId> 
<version>1</version> 

<modules> 
    <module>company-parent</module> 
</modules> 

Company父POM

定義所有的項目基本依賴/插件(管理)。

<parent> 
    <groupId>org.company</groupId> 
    <artifactId>company</artifactId> 
    <version>1</version> 
</parent> 

<artifactId>company-parent</artifactId> 

項目

項目POM

基於項目的組織信息(開發人員等)。

<parent> 
    <groupId>org.company</groupId> 
    <artifactId>company-parent</artifactId> 
    <version>1</version> 
</parent> 

<groupId>org.company.project</groupId> 
<artifactId>project</artifactId> 
<version>1.0</version> 

<modules> 
    <module>project-parent</module> 
</modules> 

項目父POM

定義爲當前項目中使用的依賴/插件(管理)。

<parent> 
    <groupId>org.company.project</groupId> 
    <artifactId>project</artifactId> 
    <version>1.0</version> 
</parent> 

<artifactId>project-parent</artifactId> 

<modules> 
    <module>company-module-1</module> 
    <module>company-module-2</module> 
    <module>company-module-3</module> 
</modules> 

工程模塊POM的

與每一個他自己打造專業化,依賴性和東西模塊。

模塊1

<parent> 
    <groupId>org.company.project</groupId> 
    <artifactId>project-parent</artifactId> 
    <version>1.0</version> 
</parent> 

<artifactId>project-module-1</artifactId> 

模塊2

<parent> 
    <groupId>org.company.project</groupId> 
    <artifactId>project-parent</artifactId> 
    <version>1.0</version> 
</parent> 

<artifactId>project-module-2</artifactId> 

模塊3

<parent> 
    <groupId>org.company.project</groupId> 
    <artifactId>project-parent</artifactId> 
    <version>1.0</version> 
</parent> 

<artifactId>project-module-3</artifactId> 

回答

1

行家子項目確實沒有t 「呼叫」父項目。 POM是聲明式的,不是強制性的。與Java類繼承類似,子項獲取父項的設置,並可以覆蓋它們或添加新的設置。請參閱Maven, POM Reference, 2.2.2. Inheritance

所以,不,你不必在子項目中再次聲明父項目的許可證設置,如果它們應該是相同的。