Ort*_*kni 5 java version dependency-management maven
在一个模块中,我使用spring-boot-starter-activemq:2.07.RELEASE哪个依赖于activemq-broker:5.15.8哪个模块guava:18.0.
在另一个模块中,我想使用番石榴,所以我必须使用:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
如果我在我的版本中使用更高版本,pom.xml则activemq-broker由于依赖关系中介的最近定义规则也会使用它(请参阅依赖关系机制简介)
我不想提供不同版本的番石榴activemq-broker.因此,为了同步版本,每次有Spring Boot升级时,我都需要手动检查版本以便同步它们.
我使用activemq-broker并guava作为示例,但我的问题更一般:如何自动重用从一个模块到另一个模块的依赖版本?
我会为我的项目定义一个父项目,其中将处理依赖关系管理。(您可能已经有了这个)。在父母依赖管理部分,我将导入activemq-parent的依赖管理。这样您就可以只定义依赖项,而无需在子项中显式版本。
您还可以让您的父级继承 spring-boot-dependency 以获取版本属性。(在此示例中,activemq.version 是从此获取的)
示例:父 pom
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.1.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-parent</artifactId>
<version>${activemq.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
.....
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)
如果您的父级不继承 spring-boot-dependency,您将不得不编写特定版本而不是${activemq.version}foractivemq-parent
在孩子这之后
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
番石榴的版本将与 相同activemq-parent。(因为它是在那里定义的)
| 归档时间: |
|
| 查看次数: |
175 次 |
| 最近记录: |