我有一个多模块 Maven 项目,其结构如下:
projectA-parent
- module-1
- module-2
我有另一个项目,我想将所有模块引入projectA-parent
作为运行时依赖项(它是一个 Spring 应用程序,并且每个模块projectA-parent
包含我希望能够自动装配的 Spring 服务)。
我想做的是
<dependency>
<groupId>projectA-group</groupId>
<artifactId>projectA-parent</artifactId>
<scope>runtime</scope>
</dependency>
这样如果我添加另一个模块projectA-parent
它会自动作为运行时依赖项引入(即,我不想在添加每个新模块时将它们添加为我的 Spring 应用程序中的依赖项)。这样的事可能吗?
你将不得不使用
<dependencies>
<dependency>
<groupId>projectA-parent-groupId</groupId>
<artifactId>projectA-parent-artifactId</artifactId>
<type>pom</type>
</dependency>
</dependencies>
这会将 com.my:commons-deps 中声明的所有依赖项添加到当前的 POM 中。
Using
<dependencyManagement>
<dependencies>
<dependency>
<groupId>...</groupId>
<artifactId>...</artifactId>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
作为依赖管理中工件版本的简单“包含”。因此,它不会在您的项目中添加任何依赖项。
UPDATE:
另一种方法是使用 BOM(物料清单)。检查这个link http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html用于使用BOM
。它隐藏在底部的某个地方。
您可以创建一个 BOM,将所有模块列为依赖项,然后可以将 BOM 包含到 pom.xml 中,如下所示:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>your_bom_group_id</groupId>
<artifactId>your_bom_artifact_id</artifactId>
<version>you_bom_version</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)