美文网首页
maven pom parent应用

maven pom parent应用

作者: holyABCD | 来源:发表于2021-11-04 19:47 被阅读0次

    1.定义

    当前工程定义为'子',<parent>中的定义为'父'。

    2.依赖优先级

    2.1.

    对于子声明了依赖,但没有version,父没有声明依赖,只在<dependencyManagement> 中规定了版本,<dependencyManagement> 从近到远,优先级降低。即对于同一依赖,用子中的依赖的版本,若没有,用父,若还没有,用父的父,父的父的父的父的父的父的父..

    2.2.

    子中<dependencies> 中声明了某依赖A且有version,不管<dependencyManagement>规定不规定,都用子的。

    3.举例

    3.1

     <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka-clients</artifactId>
                <version>3.0.0</version>
            </dependency>
     <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.apache.kafka</groupId>
                    <artifactId>kafka-clients</artifactId>
                    <version>1.0.0</version>
                </dependency>
     </dependencyManagement>
    

    子没有该依赖,引用的为3.0.0

    3.2

    父同上

      <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
    <!--        <version>1.0.0</version>-->
        </dependency>
    

    无dependencyManagement,依赖版本为1.0.0,使用的父的dependencyManagement

    3.3

    父同上

      <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
           <version>1.0.0</version>
        </dependency>
    

    无dependencyManagement,依赖版本为1.0.0,使用的父的dependencyManagement

    3.4

    父同上

      <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
           <version>1.0.0</version>
        </dependency>
     <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.apache.kafka</groupId>
                    <artifactId>kafka-clients</artifactId>
                    <version>3.0.0</version>
                </dependency>
     </dependencyManagement>
    

    子依赖版本为1.0.0,使用的自己的dependency

    3.4

     <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka-clients</artifactId>
                <version>3.0.0</version>
            </dependency>
     <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.apache.kafka</groupId>
                    <artifactId>kafka-clients</artifactId>
                    <version>3.0.0</version>
                </dependency>
     </dependencyManagement>
    

    <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
           <version>1.0.0</version>
        </dependency>
     <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.apache.kafka</groupId>
                    <artifactId>kafka-clients</artifactId>
                    <version>3.0.0</version>
                </dependency>
     </dependencyManagement>
    

    子依赖版本为1.0.0,使用的自己的dependency

    相关文章

      网友评论

          本文标题:maven pom parent应用

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