Spring boot + MyBatis pom.xml 文件中dependencyManagement 和 dependencies的區別

1.dependencies:自動引入聲明在dependencies裏的全部依賴,並默認被全部的子項目繼承。若是項目中不寫依賴項,則會從父項目
繼承(屬性所有繼承)聲明在父項目dependencies裏的依賴項。
2.dependencyManagement裏只是聲明依賴(能夠理解爲只在父項目,外層來聲明項目中要引入哪些jar包),所以子項目須要顯示的聲明須要的依賴。若是不在子項目中聲明依賴,
是不會從父項目中繼承的;只有在子項目中寫了該依賴項,而且沒有指定具體版本,纔會從父項目中繼承該項,而且version和scope都讀取
自父pom;若是子項目中指定了版本號,那麼會使用子項目中指定的jar版本。同時dependencyManagement讓子項目引用依賴,而不用顯示的列
出版本號。Maven會沿着父子層次向上走,直到找到一個擁有dependencyManagement元素的項目,而後它就會使用在這個
dependencyManagement元素中指定的版本號,實現全部子項目使用的依賴項爲同一版本。
3.dependencyManagement 中的 dependencies 並不影響項目的依賴項;而獨立dependencies元素則影響項目的依賴項。只有當外
層的dependencies元素中沒有指明版本信息時,dependencyManagement 中的 dependencies 元素才起做用。一個是項目依賴,一個是maven

 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.kuang</groupId>
    <artifactId>springcloud</artifactId>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>springcloud-api</module>
    </modules>
    <!--父項目以maven 形式建立;    pom方式打包: 表示模塊化管理-->
    <packaging>pom</packaging>
    <properties>
        <project.build.sourceEncodeing>UTF-8</project.build.sourceEncodeing>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <junit.version>4.12</junit.version>
        <lombock.version>1.16.18</lombock.version>
        <log4j.version>1.2.17</log4j.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.1.4.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.47</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.10</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.2</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombock.version}</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.2.3</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

就是 <dependencies>中的會引入到項目java

<dependencies>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
</dependencies>

相關文章
相關標籤/搜索