Maven创建父子工程详解

引言

在微服务盛行的当下,我们创建的工程基本都是父子工程,我们通过父工程来引入jar,定义统一的版本号等,这样我们在子工程中就可以直接引用后使用了,而不需要去重复的声明版本号等,这样会更方便对整个项目的jar包实现统一化管理,让项目的层次更加清晰。通常我们在创建一个微服务架构时都是一个父工程,然后里面有api的子工程,common的公共组件子工程,pojo的实体类工程、service服务工程等等,他们各司其职共同构建出了一个完整的分布式服务,废话不多说,实际操作下这个父子工程到底该怎么创建。

1.创建父工程

第一步:file-->new-->project-->maven

父工程仅仅是一个普通的maven工程就行,我们直接创建普通的maven工程,不引入任何jar包,这里直接下一步

第二步:输入groupid和artifactid,这里没什么讲究,起名看自己心情,然后继续下一步

第三步:到这里普通的maven工程就建好了,删除src(父工程用不到)注意iml文件不要删除

第四步:配置pom.xml

我们使用properties来进行版本号的统一管理,使用dependencyManagement来管理依赖,声明父工程的打包方式为pom,具体操作如下:

这里需要注意,父工程的依赖可以直接放在dependencies中,也可以在最外面包一层dependencyManagement,但是若是想要可以在子工程中依赖直接指向父工程,就需要使用dependencyManagement来管理依赖,不然子工程中的依赖的版本号还需要再次重复声明。此外父工程的打包方式应该是pom,不是jar,这里需要手动使用packaging来声明。

2.创建子工程

1)第一步:创建module子工程

可以选择maven直接创建,选择maven创建我们之后还需要手动导入jar,这里是为了展示父子工程的依赖的关系,我们使用maven选项创建。如下图:

2)声明artifactid

这里我们是不需要来声明groupid的,因为是子工程,所以这个值是固定的,我们可以自定义artifactid,如下图所示,这里完了之后就next-finsh就可以了。

3)展示子工程

下面就是我们刚刚创建的子工程了。

若是子工程不是通过这种方式建立的,想要完成父子工程的话,可以直接更改子工程中pom文件的parent块亦可。将parent指向我们想要的父级工程即可。

4)配置子工程的pom.xml

首先我们需要为不同的子工程引入不同的jar包,当然这里只展示了一个子工程,我们在当前子工程中声明parent来指明他的父级工程,同时父工程中需要引入modules标签来声明他的子工程有哪些

下图可以看到我们在子工程中是不需要声明版本号的,为什么呢?可以看到引入依赖位置的左面有个紫色的向上箭头,点下就会发现跳到了父工程中,这就是为什么我们不需要声明版本号的原因,因为当前的jar包引用指向了父工程,他们共用版本号,当然共用版本号子工程该导入jar包还是需要导入jar包的。

注意

1.父工程的pom.xml文件的打包方式应该为pom

2.想要子工程的依赖指向父工程的话,父工程的依赖应该使用dependencyManagement来管理。

3.子工程若是旧工程的话,应该将子工程pom的parent指向想要的父工程

相关推荐
南知意-1 小时前
IDEA 2025.3 版本安装指南(完整图文教程)
java·intellij-idea·开发工具·idea安装
码农水水2 小时前
蚂蚁Java面试被问:混沌工程在分布式系统中的应用
java·linux·开发语言·面试·职场和发展·php
海边的Kurisu2 小时前
苍穹外卖日记 | Day4 套餐模块
java·苍穹外卖
毕设源码-邱学长2 小时前
【开题答辩全过程】以 走失儿童寻找平台为例,包含答辩的问题和答案
java
他们叫我技术总监3 小时前
Python 列表、集合、字典核心区别
android·java·python
江沉晚呤时3 小时前
从零实现 C# 插件系统:轻松扩展应用功能
java·开发语言·microsoft·c#
梁下轻语的秋缘3 小时前
ESP32-WROOM-32E存储全解析:RAM/Flash/SD卡读写与速度对比
java·后端·spring
wanzhong23333 小时前
开发日记8-优化接口使其更规范
java·后端·springboot
Knight_AL3 小时前
Java 多态详解:概念、实现机制与实践应用
java·开发语言
C雨后彩虹3 小时前
volatile 实战应用篇 —— 典型场景
java·多线程·并发·volatile