当前位置: 首页 > news >正文

在 Maven 多模块项目中统一管理配置文件

在 Maven 多模块项目中统一管理配置文件,可以通过以下步骤实现:例如MyBatis的配置文件

方案一:父项目统一管理资源(推荐)

1. 父项目结构
parent-project/
├── pom.xml
├── src/main/resources
│   └── mybatis-config.xml  <-- 公共配置文件
└── sub-module1/
└── sub-module2/
2. 父项目 pom.xml 配置
<project><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>1.0.0</version><packaging>pom</packaging><modules><module>sub-module1</module><module>sub-module2</module></modules><!-- 公共资源声明 --><build><resources><resource><directory>src/main/resources</directory><includes><include>mybatis-config.xml</include></includes></resource></resources></build>
</project>
3. 子模块 pom.xml 配置
<project><parent><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>1.0.0</version></parent><artifactId>sub-module1</artifactId><!-- 继承父项目资源 --><build><resources><resource><directory>../src/main/resources</directory><includes><include>mybatis-config.xml</include></includes></resource></resources></build>
</project>

方案二:创建公共依赖模块

1. 新建公共模块
common-module/
├── pom.xml
└── src/main/resources└── mybatis-config.xml
2. 公共模块 pom.xml
<project><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>common-module</artifactId><version>1.0.0</version><packaging>jar</packaging>
</project>
3. 子模块引用公共模块
<dependencies><dependency><groupId>com.example</groupId><artifactId>common-module</artifactId><version>1.0.0</version></dependency>
</dependencies>

方案三:使用 Maven 资源插件

在父项目 pom.xml 添加:

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>3.2.0</version><executions><execution><id>copy-resources</id><phase>validate</phase><goals><goal>copy-resources</goal></goals><configuration><outputDirectory>${basedir}/target/classes</outputDirectory><resources><resource><directory>../src/main/resources</directory><includes><include>mybatis-config.xml</include></includes></resource></resources></configuration></execution></executions></plugin></plugins>
</build>

使用注意事项

  1. 配置文件路径:建议通过类路径加载配置文件
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
  1. 版本管理:公共模块修改后需同步更新版本号

  2. 过滤配置:如需变量替换,可在资源插件添加:

<configuration><filters><filter>../config.properties</filter></filters><filtering>true</filtering>
</configuration>
  1. 打包验证:执行 mvn clean package 后检查子模块的 target/classes 目录是否包含配置文件

根据项目实际情况选择方案:

  • 方案一适合简单项目结构
  • 方案二适合复杂项目需要共享更多资源时
  • 方案三适合需要预处理配置文件的场景
http://www.dtcms.com/a/314913.html

相关文章:

  • 8.4 Java Web(Maven P50-P57)
  • 【web应用】为什么 子模块已经删除,但 Maven 依赖项仍然报错?
  • python采集拍立淘按图搜索API接口,json数据参考
  • maven install和package的区别
  • AI绘图-Stable Diffusion-WebUI的基本用法
  • 安卓开发--ConstraintLayout(约束布局)
  • 5天挑战网络编程 -DAY1(linux版)
  • 二十年代深度立体匹配的进化与前沿综述
  • 咖啡参考基因组
  • 机器学习 入门——决策树分类
  • FreeRTOS源码分析四:时钟中断处理响应流程
  • 倒排索引:Elasticsearch 搜索背后的底层原理
  • 【C#】Blazor基本应用
  • ICCV2025 Tracking相关paper汇总和解读(19篇)
  • Matlab(2)
  • Maven配置,Idea集成Maven_依赖引入,Idea生成单元测试
  • 《AI Agent工程师(初级)》
  • ubuntu24.01安装odoo18
  • gdb print设置技巧,离线查看复杂结构体和数组变量内容,展开多层嵌套的结构体的方法
  • 【Docker安装】Ubuntu 24.04.2 LTS系统下安装Docker环境——指定APT源安装方式
  • C + +
  • 宝塔运维实战:CentOs7启动PHP7.4失败
  • 华为OD机考2025C卷 - 最小矩阵宽度(Java Python JS C++ C )
  • Linux下PXE服务器搭建
  • 嵌入式数据结构笔记(二):内存工具与链表操作
  • QT 如何实现enum与字符串的互转
  • Java基础学习(一):类名规范、返回值、注释、数据类型
  • 【QT】安装与配置
  • 应急响应复现
  • Java 课程,每天解读一个简单Java之正整数分解质因数