maven的几个属性作用

2018-12-06  本文已影响0人  不给起这个名字

DepencyManagement 作用:加上DepencyManagement后,子项目不会继承依赖,只会继承依赖的版本
比如

父pom

<groupId>com.yxh</groupId>
<artifactId>yxh</artifactId>
<version>1.0.0.0-SNAPSHOT</version>
<DepencyManagement>
      <dependencies>
        <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>8.0.13</version>
                </dependency>
     </dependencies>
</DepencyManagement>

子pom 是不会继承到mysql的依赖的,但会继承版本,需要写上mysql依赖,默认继承父pom的mysql的版本

<parent>
    <groupId>com.yxh</groupId>
        <artifactId>yxh</artifactId>
    <version>1.1.0.0-SNAPSHOT</version>
</parent>
  <dependencies>
        <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                </dependency>
     </dependencies>

dependencies 作用:依赖会被子项目继承

父pom

<groupId>com.yxh</groupId>
<artifactId>yxh</artifactId>
<version>1.0.0.0-SNAPSHOT</version>
      <dependencies>
        <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>8.0.13</version>
                </dependency>
     </dependencies>

子pom 不需要加上mysql依赖,直接会继承依赖

<parent>
    <groupId>com.yxh</groupId>
        <artifactId>yxh</artifactId>
    <version>1.1.0.0-SNAPSHOT</version>
</parent>

optional: 当项目自身被依赖时,标注依赖是否传递

<optional>true</optional>表示不传递依赖
比如api工程依赖了server工程

<dependency>
        <groupId>com.yxh</groupId>
        <artifactId>server</artifactId>
        <version>1.1.0.0-SNAPSHOT</version>
    </dependency>

common工程需要依赖api工程,但不想依赖server工程。这时需要在api工程的pom下加上<optional>true</optional>

api工程pom <optional>true</optional> 表示不传递依赖

<dependency>
        <groupId>com.yxh</groupId>
        <artifactId>server</artifactId>
        <version>1.1.0.0-SNAPSHOT</version>
                <optional>true</optional>
  </dependency>

除了api工程,其他工程其实都不需要deploy到私服,那么其他工程可以引用下面依赖,跳过deploy

<properties>
        <!--跳过deploy-->
        <maven.deploy.skip>true</maven.deploy.skip>
    </properties>

Maven pom版本升级不要再用传统的手工套路,一个一个改,这样很容易改漏的,一个maven命令
mvn versions:set -DnewVersion=1.8.2.0-SNAPSHOT

上一篇 下一篇

猜你喜欢

热点阅读