在Maven多模块项目中,本地已安装模块指的是通过mvn install命令打包并放入本地仓库的 submodule 构件。要让其他模块正确引用它,必须保证坐标一致且构建顺序正确。

标准多模块结构
一个典型的聚合工程包含父 pom 与若干子模块。父 pom 使用 packaging 为 pom,并声明 modules 列表。
<project>
<groupId>com.demo</groupId>
<artifactId>parent-app</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<modules>
<module>common</module>
<module>web</module>
</modules>
</project>
本地安装模块
进入子模块目录执行安装,使构件进入本地仓库。
cd common mvn clean install
在其它模块引用
web 模块依赖 common 时,dependency 中的groupId、artifactId、version必须与 common 的 pom 定义完全相同。
<dependency> <groupId>com.demo</groupId> <artifactId>common</artifactId> <version>1.0.0</version> </dependency>
常见错误
- common 修改后未重新 install,web 仍引用旧版。
- 父工程统一管理 version,子模块写死不同版本造成冲突。
- module 名称与文件夹不一致,导致聚合失败。
使用父工程统一版本
推荐在父 pom 的 dependencyManagement 中锁定版本,子模块只写坐标不写版本。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.demo</groupId>
<artifactId>common</artifactId>
<version>1.0.0</version>
</dependency>
&;/dependencies>
</dependencyManagement>
完整构建命令
在父目录执行以下命令可按照依赖顺序安装全部模块。
mvn clean install
排查引用问题
| 现象 | 原因 | 处理 |
|---|---|---|
| 找不到符号 | 未 install 或版本错 | 核对坐标并重装 |
| 冲突警告 | 多版本被引入 | 使用 dependencyManagement |
小结
正确引用本地已安装模块的核心是坐标一致、先 install 后引用、用聚合工程统一构建。遵循上述结构可避免大多数依赖错误。