Idea创建Maven多Module工程
名词解释
// 祖传标签
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.mycom</groupId>
<artifactId>test</artifactId>
<version>1.0.100</version>
<packaging>pom</packaging>
<name>test</name>
<modules>
<module>common</module>
<module>view</module>
<module>business</module>
</modules>
- modelVersion: 说明项目描述符遵循哪一个 POM 模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当 Maven 引入了新的特性或者其他模型变更的时候,确保稳定性
- parent: 父项目的坐标。子项目会继承父项目的 dependencies, properties 等配置,也可以根据需要重写;类似于 java, 只支持单继承,但可以通过 dependencyManagement 突破这个限制,下文会说
- groupId: 组织id,由域+组织名(公司名)组成,一般固定
- artifactId: 项目名,一般起这个名字
- version:版本号,必不可少
- packaging: 打包方式,比不可少
- modules: 用来说明本级pom中包含几个模块,像common,view,business都是他的子模块
// package的方式有3种
<packaging>pom</packaging>// 用于项目中无代码,也不执行任何代码,是为了聚合工程或传递依赖用的,一般用于做父项目/模块(意思是只要有子项目就是pom)
<packaging>jar</packaging>// 用于把代码打成jar,一般用于兄弟项目/模块之间做依赖
<packaging>war</packaging>// 用于把代码达成war,一般用于项目部署
创建project
输入名称
一路next,创建好后,pom初始化状态
由于作为根模块不放代码,src目录可以删掉
创建子module
起名字
创建好后,工程结构
父模块pom,现在的情况,新建的两个子module已经自动引进来了
再创建一个包含自己子module的module
注意修改packaging方式为:pom,src目录同理可以删掉,创建consumer和provider,business的pom
最后的顶级父模块的pom,以及项目结构
各个模块之间的依赖可以通过gav坐标来进行配置,和平时用依赖一样
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?