Maven继承
指的是,子项目继承父级Maven项目的配置信息(pom.xml)
-
在父级pom.xml中,使用
<dependencies>
标签包裹的依赖,将会无条件传递给子级,与依赖范围无关<!-- 父级pom.xml,三种依赖都将会传递给子级 --> <dependencies><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.8</version></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>5.10.2</version><scope>test</scope> <!-- 与依赖范围无关 --></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope> <!-- 与依赖范围无关 --></dependency> </dependencies>
-
在父级pom.xml中,使用
<dependencyManagement>
标签包裹的依赖,默认不会传递给子级,需要子级手动引入相关依赖,父级只做依赖的版本管理<!-- 父级pom.xml,将所有依赖放入dependencyManagement中,只是用于版本管理,默认不会将这些依赖传递给子级 --> <dependencyManagement><dependencies><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.8</version></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>5.10.2</version><scope>test</scope> <!-- 与依赖范围无关 --></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope> <!-- 与依赖范围无关 --></dependency></dependencies> </depedencyManagement>
<!-- 在子级pom.xml中,需手动引入想要的依赖,此时无需指明version,会读取父级对应依赖的version --> <dependencies><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId></dependency> </dependencies>
Maven聚合
指的是,当对父项目进行构建等操作时,自动会构建其内的所有子项目
<!-- 在父级pom.xml中声明modules标签即可,module存放的是子工程的路径 -->
<modules><module>maven_child1</module><module>../maven_child2</module>
</modules>