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
网友评论