Maven浅析(下)

MAVEN继承

意义

来统一管理一个集群中的所有公用资源

继承要做的事

  • 子工程groupId可以从父工程继承,表示同一个公司的同一个项目,可以覆盖.

  • version可以继承,也可以覆盖

  • properties:父工程可以定义变量,子工程继承使用

<junit.version>3.8.1</junit.version>

  • dependencies:所有依赖,在父工程中定义的版本都会子工程强制继承.子工程只能覆盖不能删除.

  • build(plugins):构建的插件,也可以继承自父工程

  • dependencyManagement:声明式依赖资源继承,子工程在继承父工程时从这个标签里获取的是父工程定义的所有依赖资源版本.当子工程使用依赖时无需添加版本version标签,就会从父工程继承使用,如果子工程不添加这个依赖,将不会从父工程强制继承.

原始的pom文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion><groupId>com.wiscom</groupId>
  <artifactId>springboot-test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging><name>springboot-test</name>
  <url>http://maven.apache.org</url><properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties><dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

 

创建父工程

将packaging的类型改为pom

 
  <groupId>com.wiscom</groupId>
  <artifactId>maven-parent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <packaging>pom</packaging>            // 将此处改为pom表示这是一个父级工程
​
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    // 定义变量,也可以被子工程调用
    <junit.version>4.12</junit.version>  
  </properties><dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      
      
      //<version>3.8.1</version> 
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies><dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
             <artifactId>spring-beans</artifactId>
             <version>4.3.7.RELEASE</version>
        </dependency>
    </dependencies>
  </dependencyManagement>
创建子工程

需要指向它的继承

子工程groupIdversion可以从父工程继承

如果不修改,表示同一个公司的同一个项目的同一版本

也可以修改,覆盖


 <groupId>com.wiscom</groupId>
  <artifactId>springboot-test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
  
  // 继承的父工程
 <parent>
    <groupId>com.wiscom</groupId>
    <artifactId>maven-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  
  <name>springboot-test</name>
  <url>http://maven.apache.org</url><properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
  </properties><dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      
      
      //<version>3.8.1</version> 
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency>
    
    // 依赖式继承时,不添加版本号将与父类保持一致
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
    </dependency></dependencies>

 


 

posted @ 2020-08-19 20:09  minnersun  阅读(101)  评论(0编辑  收藏  举报