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

时间:2018-05-16 15:45:40

标签: java spring maven spring-boot

我读过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的版本是如何确定的?

2 个答案:

答案 0 :(得分:4)

启动器atrifacts的版本在启动器父级中进行管理。例如,如果你在POM中有这个:

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

然后,您引用的任何引导启动程序依赖项都将具有版本2.0.2.RELEASE,除非您覆盖默认值并由于某种原因提供您自己的版本。

答案 1 :(得分:1)

这不仅与初学者有关,如果项目中有许多模块,他们有不同的依赖关系。作为常规练习,父级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-dependencies中使用Dependency Management机制定义。

<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>
  

依赖管理是一种集中依赖的机制   信息。如果有一组继承了公共项目的项目   parent可以将有关依赖项的所有信息都放入其中   常见的POM并且对文件中的工件有更简单的引用   儿童POM。