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

简介
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>

 


————————————————
版权声明:本文为CSDN博主「小生小生小小生」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xs925048899/article/details/79748707

posted @ 2020-01-22 17:44  八方鱼  阅读(860)  评论(0)    收藏  举报