Skip to content

2.公共依赖抽取 ​

进行了分模块设计与开发之后,在进行依赖配置的时候,如果各个子工程中都需要引入某一项依赖,比如 lombok,如果在各个子工程中分别引入,会比较麻烦

我们可以直接统一抽取到父工程,在父工程中统一进行配置的,父工程一旦引入了这部分公共的依赖之后,各个子工程都会继承下来。

可以在 qk-parent 这个父工程中,引入lombok、hutool的依赖。 父工程的pom.xml配置如下,请注意新增的配置代码只在下面代码中的起始点和结束点!!!

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>

    <properties>
    	<!--需要加入到父模块的配置起始点-->
        <!--项目依赖版本设置-->
        <lombok.version>1.18.46</lombok.version>
        <hutool.version>5.8.44</hutool.version>
        <qk.version>1.0-SNAPSHOT</qk.version>
        <!--需要加入到父模块的配置结束点-->
    </properties>

    <!--需要加入到父模块的配置起始点-->
    <!--依赖版本管理,只对当前模块和子模块进行版本锁定,不会下载依赖-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>${hutool.version}</version>
            </dependency>

            <!--锁定当前项目其他模块依赖的版本-->
            <dependency>
                <groupId>com.cghbh</groupId>
                <artifactId>qk-entity</artifactId>
                <version>${qk.version}</version>
            </dependency>
            <dependency>
                <groupId>com.cghbh</groupId>
                <artifactId>qk-common</artifactId>
                <version>${qk.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <!--需要加入到父模块的配置结束点-->

    <!--需要加入到父模块的配置起始点-->
    <!--引入通用依赖,这里才是真正下载依赖的地方!!!-->
    <!--在父工程的dependency声明的依赖,子模块会继承,这里才是实际发挥作用的配置!!!-->
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
        </dependency>
    </dependencies>
	<!--需要加入到父模块的配置结束点-->
</project>

然后我们可以打开右侧的maven面板,可以看看各个子工程中,都已经引入了lombok、junit依赖:

此时,qk-management这个模块pom.xml中的hutool、lombok依赖就可以删除了,因为这两个依赖已经从父工程继承到了。