当项目是多模块时,如何一次构建多个模块,而不是要分别到多个模块下分别执行Maven命令。
<!--父模块netsales-poss中的packaging必须为pom-->
<packaging>pom</packaging>
<!--父模块netsales-poss中的pom.xml中引入子模块-->
<modules>
<module>poss-basic</module>
<module>poss-core</module>
<module>poss-openapi</module>
</modules>
<!--父模块netsales-parent中的packaging必须为pom-->
<packaging>pom</packaging>
<!--父模块netsales-parent中的pom.xml中引入子模块-->
<modules>
<module>../netsales-framework</module>
<module>../netsales-jobs</module>
</modules>
<modelu>
中的路径可以理解为模块pom.xml的相对路径
在父模块中执行Maven的构建命令时,maven给根据各个模块之间的依赖关系,依次构建各个模块
多个子项目都需要某些依赖,就可以把子项目共同的依赖抽取到父项目中,子项目通过继承得到这些依赖,便于管理。
<!--poss-openapi模块中使用parent标签指定父模块-->
<parent>
<groupId>com.aster.netsales.poss</groupId>
<artifactId>netsales-poss</artifactId>
<version>1.1.0</version>
</parent>
父模块使用 dependencyManagement
标签来管理依赖,子项目默认不继承,可以配置继承。
<dependencyManagement>
<dependencies>
<!-- 子 pom 可以配置继承 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<!-- 子 pom 不可以继承 -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.6</version>
<optional>true</optional>
</dependency>
</dependencies>
</dependencyManagement>
子模块配置父模块在dependencyManagement
中的依赖时,不需要版本, 会从父项目继承, 如果指定版本就是代表不是来自父 pom 而是子 pom 自己的
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- 父项目的 swagger 是不能继承的 -->
</dependencies>
父模块中使用<dependencies>
申明的依赖,子模块默认会全部继承。
原文:https://www.cnblogs.com/lyldelove/p/13193366.html