maven之dependencyManagement

使用背景:

当某个项目包含多个模块,每个模块都需要引用相同的包(例如:quartz),为了保证各个子模块之间因为包的问题出现版本冲突,maven引入了dependcy management。

使用说明:

通过一个简单的工程例子来说明:例如某一个工程的目录结构如下(通过引用quartz依赖为例):
demo
--module1
----src
----pom.xml
--module2
----src
----pom.xml
--pom.xml
1. 在demo的pom.xml下配置对应的信息:其格式如下:
<?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>demo</groupId>
    <artifactId>demo</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>quartz</groupId>
                <artifactId>quartz</artifactId>
                <version>1.6.0</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <modules>
        <module>module1</module>
        <module>module2</module>
    </modules>
</project>
2. module1与module2的pom中进行如下配置中分别加入以下依赖即可:
    <dependencies>
        <dependency>
            <groupId>quartz</groupId>
            <artifactId>quartz</artifactId>
        </dependency>
    </dependencies>
3. 如果要更改所依赖的版本信息:只需要更改父pom里面的配置即可。子目录下会默认查找。

总结:

 01. 使用dependencyManagement可以有效解决一个工程下多个模块引用包版本的一致性。
 02. 更新维护版本方便,不用维护子模块的版本信息,只需要更改主模块的版本信息即可。
 03. 减少各个子模块对版本选择的困扰,统一由父模块决定。



上一篇:spring boot 2.0 特性之springApplication


下一篇:spring boot 2.0之安全