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