原则: 业务负责方,负责jar版本;业务非负责方,父pom控制版本;外部jar的版本和模块管理分离
含义:
1.业务负责方,负责jar版本.
即:自己负责api jar 的业务逻辑,则自己维护jar的版本。
<parent>
<groupId>top.i5i5</groupId>
<artifactId>mall-pom-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>top.i5i5</groupId>
<artifactId>common-utils</artifactId>
<version>0.0.1</version><!--业务负责方自己更新维护版本号的升级-->
2.业务负责方,依赖此jar
<dependency>
<groupId>top.i5i5</groupId>
<artifactId>common-utils</artifactId>
<version>0.0.1</version><!--业务负责方自己更新维护版本号的升级-->
</dependency>
自己负则的业务模块依赖此jar时,则需要自己手动升级版本号。
3.非业务负责方,依赖此jar
父pom
<dependencyManagement>
<dependencies>
<dependency>
<groupId>top.i5i5</groupId>
<artifactId>common-utils</artifactId>
<version>0.0.1</version>
</dependency>
</dependencies>
</dependencyManagement>
项目pom
<dependency>
<groupId>top.i5i5</groupId>
<artifactId>common-utils</artifactId>
<!--非业务方,引入的是外部jar,jar的版本管理统一交给父pom管理-->
</dependency>
4.外部jar的版本和模块管理分离
外部jar的版本管理,统一交给父pom管理,利于版本升级,但父pom不会管理模块组织。
由另外的pom管理模块组织,如:
分管模块的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>top.i5i5</groupId>
<artifactId>mall-business</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>api</module>
<module>service</module>
<module>webapp</module>
<module>webapp-manage</module>
<module>chronos</module>
<module>consts</module>
</modules>
</project>