Maven多模块项目结构依赖和搭建

本文介绍了Maven多模块项目的构建和依赖管理,包括简单多模块的搭建过程,父项目配置dependencyManagement,以及如何在实际项目中构建复杂的模块结构,如使用dubbo进行分布式服务,并解决跨服务器依赖问题。通过创建父项目、子项目,以及“爷爷”项目,实现了不同模块间的有效依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

Maven多模块项目,适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理。尤其是一些开源框架,也是采用多模块的方式,提供插件集成,用户可以根据需要配置指定的模块。

简单多模块搭建

多模块项目说简单点可以理解为项目间的继承。首先搭建一个简单的多模块项目结构,我用的idea创建项目。既然是继承我们先创建整个项目结构的父项目,创建的过程注意一点,因为使用的是idea所以父项目创建为project。因为是父项目所以src等文件夹都可以删掉了 看起来项目更干净一些,我们只需要父项目的pom文件来进行依赖配置。父项目pom文件如下:

  <groupId>com.xs.personal</groupId>
    <artifactId>loginServer</artifactId>
    <packaging>pom</packaging>
    <version>1.0.1</version>
    <name>loginServer</name>
    <url>http://maven.apache.org</url>


    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.version>4.2.5.RELEASE</spring.version>
        <login.version>1.0.1</login.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-websocket</artifactId>
                <version>${spring.version}</version>
            </dependency>
            .......................
      </dependencies>
    </dependencyManagement>

注意父项目的打包方式配置成pom方式。maven打包方式配置为pom打包就是什么都不会生成。
dependencyManagement 配置用来配置声明子项目可能用到的依赖 如果子项目用到了某个依赖可以不需要配置版本号 而使用父项目声明好的 方便各个子项目的依赖管理。当然如果子项目配置了版本号则会使用子项目配置的版本号。
父项目创建好了 ,接下来创建子项目。在刚刚建立的父项目上创建module。我创建了三个module,创建完后如下:
这里写图片描述
创建完会发现父项目的pom文件中多出了部分配置

 <modules>
        <module>loginServer-web</module>
        <module>loginServer-api</module>
        <module>loginServer-mapper</module>
        <module>loginServer-service</module>
    </modules>

这样简单的父子项目结构就建好了,但是只有结构是不够的,各个项目间还需要建立依赖互相调用。首先在父项目pom文件中加入这些依赖

 <dependencyManagement>
        <dependencies>
            <!--子项目依赖-->
            <dependency>
                <groupId>com.xs.personal</groupId>
                <artifactId>loginServer-web</artifactId>
                <version>${login.version}</version>
            </dependency>
            <dependency>
                <groupId>com.xs.personal</groupId>
                <artifactId>loginServer-api</artifactId>
                <version>${login.version}</version>
            </dependency>
            <dependency>
                <groupId>com.xs.personal</groupId>
                <artifactId>loginServer-service</artifactId>
                <version>${login.version}</version>
            </dependency>
            <dependency>
                <groupId>com.xs.personal</groupId>
                <artifactId>loginServer-mapper</artifactId>
                <version>${login.version}</version>
            </dependency>

在子项目的依赖只需要使用父项目声明的依赖就可以了,比如web子项目需要依赖service子项目只需要在web子项目的pom文件加入如下依赖就可以了:

 <dependency>
            <groupId>com.xs.personal</groupId>
            <artifactId>loginServer-service</artifactId>
        </dependency>

这样整个简单多模块项目结构就搭建和依赖好了。

实际项目完整版多模块项目结构依赖

在实际项目中,只是简单的多项目依赖并不能满足工作需要,比如我上面建立的登录模块现在用dubbo做分布式服务,我要新建立一个提供登录服务的项目。可能还需要两个项目不在一台服务器。实际项目中这样不同的项目可能会有10几个。办法当然是有的。
创建多个简单多模块结构每个结构中的父项目可能是登录模块项目,登录服务项目等等。接下来我们再单独创建一个父项目作为所有结构中的爷爷项目,这样每组子项目依赖父项目,所有父项目依赖爷爷项目,这样不同的模块就依赖起来了。
但是跨服务器的问题怎么解决呢。创建完爷爷项目后我们install这个爷爷项目,就像下图一样:
这里写图片描述
然后到我们的maven本地仓库中就可以找到爷爷项目依赖包了,文件目录是groupId+artifactId+版本号然后我们可以看到下图的文件:
这里写图片描述
这就是最关键的文件了 接下来把这个文件传到maven服务器上,各个父项目只需要在pom中j加入下面的配置就可以像依赖jar包一样依赖这个爷爷项目了,这样整个完整的多项目模块就创建依赖好了。

<parent>
        <artifactId>loginServer</artifactId>
        <groupId>com.xs.personal</groupId>
        <version>1.0.1</version>
    </parent>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值