使用Maven构建多模块项目

Posted zhouyon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Maven构建多模块项目相关的知识,希望对你有一定的参考价值。

一、为什么使用Maven构建多模块项目

  1. 复用,划分出来的模块可以供其他项目使用。
  2. 固化,划分出来的某个模块可让专人开发,沉淀技术,分工协作。
  3. 优化依赖,每个模块有各自的pom。
  4. 节省时间,可在单个模块上进行build。

二、在IDEA中创建多模块项目

  1.进过创建后的完整项目结构,其中blog_admin,blog_web为SpringBoot项目,其余无骨架Maven项目。

  技术图片

 

三、模块间的依赖关系

1.依赖class

技术图片

 

 

 技术图片

 

 

 

 技术图片

 

 

 2.通过座标直接依赖jar

  1.直接引用

<dependencies>
         <dependency>
             <groupId>com.zhou</groupId>
             <artifactId>blog_file</artifactId>
             <version>${onlyblog.version}</version>
         </dependency>
</dependencies>

  2.在父类中声明使用该模块

 <!-- dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,
    是不会从父项目中继承下来的;只有在子项目中写了该依赖项,
    并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom
    因为blog_core需要被多次使用,我需要指定使用在某个项目中 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.zhou</groupId>
                <artifactId>blog_core</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

 

 

   然后在子模块中便可直接继承父模块使用,不用在写版本号

<dependencies>
        <dependency>
            <groupId>com.zhou</groupId>
            <artifactId>blog_core</artifactId>
        </dependency>
 </dependencies>

这样做的好处:统一管理项目的版本号,确保应用的各个项目的依赖和版本一致,才能保证测试的和发布的是相同的成果,因此,在顶层pom中定义共同的依赖关系。同时可以避免在每个使用的子项目中都声明一个版本号,这样想升级或者切换到另一个版本时,只需要在父类容器里更新,不需要任何一个子项目的修改;如果某个子项目需要另外一个版本号时,只需要在dependencies中声明一个版本号即可。子类就会使用子类声明的版本号,不继承于父类版本号。

 

以上是关于使用Maven构建多模块项目的主要内容,如果未能解决你的问题,请参考以下文章

Maven使用Maven构建多模块项目

maven多模块项目构建

使用Maven构建多模块项目

使用Maven构建多模块项目

使用Maven构建多模块项目

定义将在 Maven 多项目构建中构建的模块列表