之前一段时间,我和在其他公司工作的同行朋友聊天时无意间聊到项目依赖问题,发现很多公司(包括我们公司)都是有自己一个统一的父工程,而这个工程没有任何的逻辑代码,说起来只有一个pom.xml
文件,而这个pom文件就是统一管理项目的依赖使用的。下面简单记录一下如何创建这样一个父工程来统一管理项目依赖。
1.创建一个纯Maven项目
选择maven
,然后直接Next
,Next
,Finish
。
2.删除Src目录
因为父工程我们用来统一管理依赖,不需要写任何的逻辑业务,所以src目录我们用不上,是可以直接删除的(自己愿意也可以留着)
3.修改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>org.magic</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
<!--1.修改打包方式-->
<packaging>pom</packaging>
<!--2.此标签内定义版本号-->
<properties>
<junit.version>4.12</junit.version>
</properties>
<!--3.依赖管理-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
4.创建子模块
在父工程目录下new一个子模块,该子模块将会自动引入父工程pom文件。
父项目中我们可能引入了10个依赖,但是子模块中我们可能只会用到其中3个,那在子模块中我们想使用哪个依赖,还是需要引入一下,但是引入的依赖将会从父工程中引入。如下图所示:我在父工程中将Junit
的版本号修改一下,然后子模块的依赖版本号也相应的进行了调整,说明子模块引用了父工程的依赖。
如果我们在这个父工程下面创建了6个子模块,当我们需要修改依赖的版本号的时候,直接修改父工程中的依赖版本号,相当于修改了6个子模块中的依赖版本号,这就是统一管理。避免依赖重复引入,出现依赖版本问题,并且依赖统一管理之后,我们后期升级依赖版本的时候也更加方便,不需要去各个Module中修改其pom.xml
文件中的依赖版本号。维护更加方便。