美文网首页程序员
说说 Maven dependency 与 dependency

说说 Maven dependency 与 dependency

作者: deniro | 来源:发表于2020-12-05 20:33 被阅读0次

    pom.xml文件中,所依赖的jar包版本,有两种判断途径1

    1. 如果dependencies里的某个dependency没有声明version元素,那么maven就会到dependencyManagement里面去找有没有同一artifactId和groupId的版本声明,如果有,就继承它,如果没有就会报错。因为每个dependency必须有一个确定的version。

    2. 如果dependencies里的某个dependency声明了version元素,那么直接以dependency里的version为准。

    比如以下配置:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR8</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <!--spring-cloud-config-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
    </dependencies>
    

    因为我们在 dependencies/dependency 中都没有明确指定依赖包的版本号,所以 Maven 会在 dependencyManagement/dependencies/dependency 中查找 spring-cloud-starter-config 与 spring-cloud-config-server 的版本号。

    这个示例的情况更复杂一些,因为 spring-cloud-starter-config 与 spring-cloud-config-server 的版本号并不是直接定义在 dependencyManagement 中,而是交由 spring-cloud-dependencies 统一管理,上述两个依赖包交由其统一定义。


    参考资料:
    【1】 Maven中的dependencyManagement 意义.

    相关文章

      网友评论

        本文标题:说说 Maven dependency 与 dependency

        本文链接:https://www.haomeiwen.com/subject/izjywktx.html