如何将一个Maven项目作为依赖添加到另一个项目中
兄弟,完全不用这么麻烦!一个个加JAR或者整个目录引用都是比较原始的做法,Maven本身就有更优雅的解决方案,给你几个最佳方案:
最佳解决方案推荐
直接引用仓库中的依赖(优先选这个)
如果那个目标项目已经发布到Maven中央仓库、公司私有仓库或者团队内部的仓库,你只需要在你的pom.xml里添加对应的依赖坐标就行,完全不用手动下载JAR。比如:<dependency> <groupId>com.example</groupId> <!-- 目标项目的groupId --> <artifactId>target-project</artifactId> <!-- 目标项目的artifactId --> <version>1.0.0</version> <!-- 目标项目的版本号 --> </dependency>保存后Maven会自动帮你下载并管理这个依赖,包括它的传递性依赖,省心又规范。
将目标项目安装到本地Maven仓库
如果目标项目是你自己开发的、还没上传到远程仓库,那你可以先在目标项目的根目录下执行Maven命令:mvn clean install这个命令会把目标项目编译打包,然后安装到你的本地Maven仓库(默认在
~/.m2/repository目录)。之后你就可以像上面一样,在你的项目pom.xml里添加对应的依赖坐标来引用它了。将目标项目作为Maven子模块(适合多模块项目场景)
如果你的项目和目标项目本来就是同一系列的,建议把它们整合成一个Maven多模块项目。- 先在父项目的
pom.xml中添加子模块声明:<modules> <module>../target-project</module> <!-- 目标项目的相对路径 --> <module>your-current-project</module> <!-- 你当前的项目 --> </modules> - 然后在你当前项目的
pom.xml中添加对子模块的依赖:<dependency> <groupId>com.example</groupId> <artifactId>target-project</artifactId> <version>1.0.0</version> <scope>compile</scope> </dependency>
这样两个项目可以一起编译、打包,依赖关系也会自动维护,非常适合团队协作或者项目拆分的场景。
- 先在父项目的
不推荐的做法:直接引用lib目录下的所有JAR
你提到的把所有JAR放到lib目录然后引用整个目录的方式,虽然能实现功能,但会失去Maven依赖管理的核心优势:比如无法自动处理传递依赖、版本冲突难以排查、依赖更新需要手动替换JAR,长期来看维护成本很高,所以不建议这么做。
内容的提问来源于stack exchange,提问作者tom
相关产品推荐
相关产品推荐

