IDEA搭建多模块的Maven项目方式(相互依赖)
需求
idea上搭建maven项目 MainModule,MainModule依赖ModuleA和 ModuleB,ModuleB依赖ModuleA。
ModuleA 和ModuleB中只有serve层到数据库层的文件,即这两个模块的maven项目,只有src/main/java文件夹。
方式一:MainModule引用ModuleA和ModuleB的jar形式
即将ModuleA和ModuleB编译后的jar包编译到MainModule的lib文件中。
运行项目的时候MainModule会走ModuleA和ModuleB的源码,MainModule勾选自动编译或者手动编译MainModule,修改ModuleA和ModuleB的代码后,会即时生效。
步骤:
1.导入maven项目:MainModule如图:

2.MainModule(pom.xml)如下图:

3.如图引maven项目:ModuleA和ModuleB

4.ModuleA(pom.xml):


5.ModuleB(pom.xml)如下图:


6.查看MainModule是否依赖ModuleA和ModuleB这两个项目:

说明:
这种方式,项目MainModule加入ModuleA和ModuleB会自动依赖源码。
方式二:MainModule引用ModuleA和ModuleB的源码形式
即将ModuleA和ModuleB源码编译后输出到MainModule的编译路径下面。
步骤:
1.导入maven项目MainModule
2.MainModule(pom.xml)如下图:ModuleA和ModuleB.jar范围为:provided(表示运行时,不会将包放进lib里面)
,
3.如图引入maven项目:ModuleA和ModuleB

4.ModuleA(pom.xml):,


5.ModuleB(pom.xml):


6.设置MainModule

说明:
这种方式,项目MainModule直接运行的是ModuleA和ModuleB源码而不是jia包。
方式三:使用pom.xml的
<parent></parent>
标签。以后补齐
总结
不同点:
- 方式一:build artifacts后,moduleA和moduleB以jar的形式存在MainModule编译后的的lib文件夹下面。
- 方式二:build artifacts后,moduleA和moduleB以源码的形式存在MainModule编译后MainModule\target\MainModule\WEB-INF\classes文件夹的下面。
相同点:
- MainModule的自动编译或者手动编译后,修改moduleA和moduleB的代码,会即时生效。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringBoot Actuator未授权访问漏洞解决方案
工作的时候遇到过提示Spring Boot后端存在Actuator未授权访问漏洞,网上有很多详细的解释文章,在这里做一个简单的总结、介绍和分享,需要的朋友可以参考下2023-09-09
浅谈System.getenv()和System.getProperty()的区别
这篇文章主要介绍了System.getenv()和System.getProperty()的区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-06-06
部署springboot打包不打包配置文件,配置文件为外部配置文件使用详解
在Spring Boot项目中,将配置文件排除在jar包之外,通过外部配置文件来管理不同环境的配置,可以实现灵活的配置管理,在pom.xml文件中添加相关配置,打包时忽略指定文件,运行时在jar包同级目录下创建config文件夹,将配置文件放入其中即可2025-02-02


最新评论