【maven】---聚合和继承

2/13/2017来源:经验技巧人气:1632

前言

    自从我知道写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>

小结

    还是个菜的不能再菜的鸟,希望路过的大神,给予指导啊!

感谢您的宝贵时间···