1. 程式人生 > >【maven】---聚合和繼承

【maven】---聚合和繼承

前言

    自從我知道寫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>

小結

    還是個菜的不能再菜的鳥,希望路過的大神,給予指導啊!

感謝您的寶貴時間···