【maven】---聚合和繼承
阿新 • • 發佈:2019-01-26
前言
自從我知道寫maven實戰這本書的作者長得隨心所欲後,我再拿起這本書真心的不想看前言了。下面分享一下maven中的所謂的聚合和繼承。
內容
下文中的子本指的是:多個maven專案。
父本指的是:maven的父專案。
聚合
Maven的另一個更加值得瞻仰的地方,就是多個maven專案之間可以建立某種聯絡。比如:多個maven專案,我們都想釋出成war。這個時候,我們可以一個專案一個專案的釋出,只到這幾個專案完全釋出。Maven提供了一種聚合機制,建立一個父本,然後在父本pom.xml配置多個專案,然後直接釋出父本的pom.xml即可。下面舉例說明:
- 子本:
- 父本:
<!-- 聚合 --> <modules> <!-- <module>../user-core</module>--> <module>../user-dao</module> <module>../user-log</module> <module>../user-service</module> </modules>
效果就是每個maven專案都發布了war
繼承
多個maven專案,可能引用好多相同的依賴jar包,那樣的話,每個maven專案的相同依賴,都要不同程度的在中央倉庫下載。本著抽象的理念,遇到相同的是不是考慮一下抽象,於是maven出了一個繼承。也就是在父本中出現的jar依賴,子本中如果繼承該父本,則可以享用這個jar包。這樣是不是方便了很多,下面是pom.xml配置。
- 子本:
<parent>
<groupId>org.konghao.user</groupId>
<artifactId>user-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../user-parent/pom.xml</relativePath>
</parent>
<artifactId>user-log</artifactId>
<name>user-log</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
- 父本:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>4.10</junit.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
小結
還是個菜的不能再菜的鳥,希望路過的大神,給予指導啊!
感謝您的寶貴時間···