【笔记】SpringCloud父模块和子模块的关系配置(<parent>标签)

子pom使用<parent>标签可以继承父pom的依赖、属性等内容,使POM文件之间的继承避免冗余或重复配置,如果在父POM和子POM中都配置了不同值的依赖项或属性,则子POM值将具有优先级。

父pom 几乎可以包含所有内容,并且可以将它们继承到子pom 文件中,例如

  1. 公共数据:开发人员的名称,SCM地址,分发管理等。
  2. 常量:比如版本号
  3. 共同依赖:对所有的孩子都是共同的。这与在单个pom文件中多次编写它们具有相同的效果。
  4. 属性:例如插件,声明,执行和id。
  5. 配置
  6. 资源

父POM

在下面的例子中,parent POM已经配置了基本的项目信息,以及JUnit和spring framework的两个依赖

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd;
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.howtodoinjava.demo</groupId>
  <artifactId>MavenExamples</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>MavenExamples Parent</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <junit.version>3.8.1</junit.version>
    <spring.version>4.3.5.RELEASE</spring.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>
  </dependencies>
</project>

子POM

子 POM 需要使用<parent>标签引用父 POM,指定 groupId/artifactId/version 等属性。

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <!--The identifier of the parent POM-->
  <parent>
    <groupId>com.howtodoinjava.demo</groupId>
    <artifactId>MavenExamples</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>MavenExamples</artifactId>
  <name>MavenExamples Child POM</name>
  <packaging>jar</packaging>
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-security</artifactId>
      <version>${spring.version}</version>
    </dependency>
  </dependencies>
</project>

默认情况下,Maven 首先在项目的根目录中查找父 POM,然后是本地存储库,最后是远程存储库。如果父 POM 文件不在任何其他地方,那么你可以使用代码标签<relativePath>

此相对路径应相对于项目根目录

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <!--The identifier of the parent POM-->
  <parent>
    <groupId>com.howtodoinjava.demo</groupId>
    <artifactId>MavenExamples</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../baseapp/pom.xml</relativePath>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>MavenExamples</artifactId>
  <name>MavenExamples Child POM</name>
  <packaging>jar</packaging>
</project>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值