如何在Maven中单独导入库的指定子模块?
Maven多模块项目中单独导入子模块的实现方案
要实现服务端单独用OEADL-ANNOTATIONS、客户端用OEADL-SWING的需求,按以下步骤操作即可:
1. 确认多模块项目的POM配置正确
首先你的父模块pom.xml必须满足两个核心要求:
- 打包类型设为
pom:<packaging>pom</packaging> - 在
<modules>标签里声明所有子模块:<modules> <module>OEADL-EXCEPTIONS</module> <module>OEADL-ANNOTATIONS</module> <module>OEADL-SWING</module> </modules>
每个子模块的pom.xml要指定父模块坐标,比如OEADL-ANNOTATIONS的pom:
<parent> <groupId>你的父模块groupId</groupId> <artifactId>父模块artifactId</artifactId> <version>父模块版本号</version> </parent> <artifactId>OEADL-ANNOTATIONS</artifactId>
OEADL-SWING的pom还要添加对另外两个子模块的依赖:
<dependencies> <dependency> <groupId>你的父模块groupId</groupId> <artifactId>OEADL-EXCEPTIONS</artifactId> <version>同父模块版本</version> </dependency> <dependency> <groupId>你的父模块groupId</groupId> <artifactId>OEADL-ANNOTATIONS</artifactId> <version>同父模块版本</version> </dependency> </dependencies>
2. 将子模块部署到Maven仓库
在父模块的根目录下执行Maven命令,把所有子模块安装到本地仓库(如果是团队协作,部署到公司远程仓库):
mvn clean install
执行完成后,每个子模块都会以独立的依赖坐标存在于Maven仓库中。
3. 服务端项目导入OEADL-ANNOTATIONS
在服务端项目的pom.xml里直接添加该子模块的依赖即可:
<dependencies> <dependency> <groupId>你的父模块groupId</groupId> <artifactId>OEADL-ANNOTATIONS</artifactId> <version>对应版本号</version> </dependency> </dependencies>
4. 客户端项目导入OEADL-SWING
客户端项目只需要添加OEADL-SWING的依赖,Maven会自动处理它的传递依赖,把OEADL-EXCEPTIONS和OEADL-ANNOTATIONS一并引入:
<dependencies> <dependency> <groupId>你的父模块groupId</groupId> <artifactId>OEADL-SWING</artifactId> <version>对应版本号</version> </dependency> </dependencies>
注意事项
- 确保所有子模块的
groupId、artifactId、version配置统一,避免依赖找不到的问题 - 如果是远程仓库,需要确保子模块已经成功部署,并且客户端/服务端项目能访问到该仓库
内容的提问来源于stack exchange,提问作者David Blbulyan
相关产品推荐
相关产品推荐

