Spring Boot Starters中maven版本是如何指定的?

问题描述 投票:0回答:3

我已阅读 reference 但我不明白 versionId 是如何在依赖项中设置的。例如 MongoDB starter 指定

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.mongodb</groupId>
                    <artifactId>mongo-java-driver</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>jcl-over-slf4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

但是缺少

version
标签。使用这些启动时如何确定
mongodb-driver
的版本?

java spring maven spring-boot
3个回答
5
投票

启动器工件的版本在启动器父级中进行管理。 例如,如果您的 POM 中有此内容:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.2.RELEASE</version>
</parent>

那么您引用的任何启动启动器依赖项都将具有版本 2.0.2.RELEASE,除非您出于某种原因覆盖默认值并提供您自己的版本。


2
投票

这不仅与初学者有关,如果您的项目中有许多模块,它们具有不同的依赖关系。作为常规做法,有一个具有常规设置的父级

pom.xml

如果您在子 Maven 模块中看到如下依赖项:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
</dependency>

父级中存在已配置的依赖项

pom
,例如:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.5</version>
</dependency>

通常,使用属性来配置版本会更灵活:

<properties>
    <commons-lang3.version>3.5</commons-lang3.version>
</properties>

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>${commons-lang3.version}</version>
</dependency>

MongoDb
版本使用依赖管理机制在spring-boot-dependency中定义。

<properties>
    <mongodb.version>3.8.0-beta2</mongodb.version>
<properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver</artifactId>
            <version>${mongodb.version}</version>
        </dependency>
    <dependencies>
<dependencyManagement>

依赖管理是一种集中依赖的机制 信息。当您有一组继承共同点的项目时 父级可以将有关依赖项的所有信息放入 通用 POM,并且对中的工件有更简单的引用 子 POM。


0
投票

为了研究启动器中的内容,大多数 IDE 都提供依赖项管理或查看功能,使其更易于导航。

对于 IntelliJ 用户,只需使用菜单选项:
选择 视图 > 工具窗口 > Maven 项目 > 依赖项

enter image description here

这是探索或找出给定启动器中包含的内容的基本方法。

© www.soinside.com 2019 - 2024. All rights reserved.