在Maven中创建依赖项组以供重用-包括“提供的”依赖项
||
我是Maven的新手,正在建立我的第一个Maven项目。我还以一些poms的形式创建了一些maven资产,这些pom可以从任何将来的项目中继承或用作依赖项。我想将依赖项分组在一起,并能够根据需要有选择地将它们添加到项目中。
我阅读了有关pom最佳实践的这篇文章。我喜欢将相关的依赖项组合到poms中,然后根据需要将pom作为依赖项添加到项目中的想法。这种方法非常适合编译范围内的依赖项。但是,它对于提供的作用域对象失败,因为作为传递依赖项,它们被忽略了。
这是我的意思的示例:可以说,我将项目的Web依赖项归为一个web-deps pom.xml。其中包括ѭ0范围的spring框架依赖关系,以及include1范围的javaee依赖关系:
<modelVersion>4.0.0</modelVersion>
<groupId>com.xyz</groupId>
<artifactId>mvn-web-deps</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>javaee</groupId>
<artifactId>javaee-api</artifactId>
<version>${javaee.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
然后,我将此pom作为依赖项添加到另一个项目中:
<modelVersion>4.0.0</modelVersion>
<groupId>com.xyz</groupId>
<artifactId>project-a</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependency>
<groupId>com.xyz</groupId>
<artifactId>mvn-web-deps</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>pom</type>
</dependency>
mvn-web-deps
中的依赖项现在变为可传递的。由于上面的依赖项引用的作用域是“ 0”,因此省略了“ 1”传递依赖项。
我想避免将它们添加到父级的“ 7”部分,因为只能有一个父级,而一个项目可能只需要其中一些依赖项组,而不是全部。我也许可以将它们添加到“ 8”部分,但随后我将不得不在每个子项目中重新声明每个依赖项(不依赖版本)。
在避免上述问题的同时,对依赖项进行分组的正确/更好的方法是什么?
没有找到相关结果
已邀请:
3 个回复
僻朵庙惩竣
佃蒜狗掂哥
,并将我使用的所有库添加到了
部分。我创建的所有新项目/模块都从父级
继承其
,并将需要的每个依赖项添加到自己的
部分中,减去版本。这种方案使我可以在一个地方管理我使用的库的版本及其所需的存储库声明。另一个优点(相对于尝试以某种方式创建依赖项捆绑包)是,这可以对添加到子poms的库进行更细粒度的控制-仅添加实际需要的依赖项。
疮痪徘弦漏