引入driven-adapters父依赖时如何自动包含其所有子模块?
可以实现,具体方案如下
你只需要把driven-adapters模块配置成pom打包类型的聚合模块,并在其pom.xml中声明所有子模块的依赖,这样其他模块引入driven-adapters时就会自动包含所有子模块的依赖。
步骤1:配置driven-adapters的pom.xml
确保driven-adapters的打包类型为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"> <groupId>org.simonegiusso</groupId> <artifactId>driven-adapters</artifactId> <version>${revision}</version> <packaging>pom</packaging> <!-- 聚合所有子模块,新增子模块时在这里添加 --> <modules> <module>timeseries-source-postgres</module> <module>timeseries-source-cassandra</module> </modules> <!-- 声明所有子模块为依赖,引入本模块时会自动传递这些依赖 --> <dependencies> <dependency> <groupId>org.simonegiusso</groupId> <artifactId>timeseries-source-postgres</artifactId> <version>${revision}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.simonegiusso</groupId> <artifactId>timeseries-source-cassandra</artifactId> <version>${revision}</version> <scope>runtime</scope> </dependency> <!-- 新增子模块时,在这里同步添加对应的依赖项 --> </dependencies> </project>
步骤2:在configurator中引入driven-adapters依赖
此时configurator的pom.xml只需引入driven-adapters,Maven会自动拉取所有子模块的依赖:
<dependencies> <!-- 仅需这一行,自动包含所有driven-adapters子模块的runtime依赖 --> <dependency> <groupId>org.simonegiusso</groupId> <artifactId>driven-adapters</artifactId> <version>${revision}</version> <scope>runtime</scope> </dependency> </dependencies>
后续维护
当driven-adapters新增或移除子模块时,仅需修改driven-adapters的pom.xml:
- 在
<modules>中添加/移除子模块的路径 - 在
<dependencies>中添加/移除对应子模块的依赖项
configurator的pom.xml完全不需要修改,就能自动同步子模块的依赖变更。
内容的提问来源于stack exchange,提问作者SGiux
相关产品推荐
相关产品推荐

