maven学习(十一)——maven中的聚合与继承

一、聚合

  如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合

1.1、聚合配置代码

<modules>
       <module>模块一</module>
       <module>模块二</module>
       <module>模块三</module>
</modules>

例如:对项目的Hello、HelloFriend、MakeFriends这三个模块进行聚合

<modules>
       <module>../Hello</module>  
       <module>../HelloFriend</module>        
       <module>../MakeFriends</module>
</modules>

其中module的路径为相对路径。

二、继承

  继承为了消除重复,我们把很多相同的配置提取出来,例如:grouptId,version等

2.1、继承配置代码

<parent>  
          <groupId>me.gacl.maven</groupId>
          <artifactId>ParentProject</artifactId>
          <version>0.0.1-SNAPSHOT</version>
          <relativePath>../ParentProject/pom.xml</relativePath>  
</parent>

2.2、继承代码中定义属性

  继承代码过程中,可以定义属性,例如:

<properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <junit.version>4.9</junit.version>
     <maven.version>0.0.1-SNAPSHOT</maven.version>
 </properties>

访问属性的方式为${junit.version},例如:

<dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>${junit.version}</version>
     <scope>test</scope>
</dependency>    

2.3、父模块用dependencyManagement进行管理

<dependencyManagement>
    <dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
    </dependency>    
    <dependency>
            <groupId>cn.itcast.maven</groupId>
            <artifactId>HelloFriend</artifactId>
            <version>${maven.version}</version>
            <type>jar</type>
            <scope>compile</scope>
       </dependency>
     </dependencies>
</dependencyManagement>

这样的好处是子模块可以有选择行的继承,而不需要全部继承。

三、聚合与继承的关系

  聚合主要为了快速构建项目,继承主要为了消除重复。

原文地址:https://www.cnblogs.com/jack1208-rose0203/p/6298088.html