Maven项目引入本地JAR包的三种正确方式对比

张开发
2026/4/5 19:45:59 15 分钟阅读

分享文章

Maven项目引入本地JAR包的三种正确方式对比
在开发过程中有时候我们会碰到需要在 Maven 项目里引入本地 JAR 包的情况。下面就给大家详细介绍三种正确引入本地 JAR 包的方式并对比它们的优缺点。一、使用 system 范围依赖1. 应用场景当我们有一些本地的 JAR 包这些包可能是公司内部开发的或者是从第三方下载的但没有发布到 Maven 仓库的就可以使用这种方式引入。比如公司内部有一个加密算法的 JAR 包没有对外公开只能在公司内部使用这时就可以用 system 范围依赖引入到项目中。2. 示例Java 技术栈project !-- 项目基本信息 -- modelVersion4.0.0/modelVersion groupIdcom.example/groupId artifactIdmy-project/artifactId version1.0-SNAPSHOT/version dependencies !-- 使用 system 范围依赖引入本地 JAR 包 -- dependency groupIdcom.example/groupId artifactIdlocal-library/artifactId version1.0/version !-- 指定依赖范围为 system -- scopesystem/scope !-- 指定本地 JAR 包的路径 -- systemPath${basedir}/lib/local-library.jar/systemPath /dependency /dependencies /project在这个示例中${basedir}表示项目的根目录lib是存放本地 JAR 包的文件夹local-library.jar就是我们要引入的本地 JAR 包。3. 技术优缺点优点简单直接只需要在pom.xml里指定本地 JAR 包的路径就可以引入。缺点这种方式引入的 JAR 包不会被打包到项目的最终构建产物中而且在不同的开发环境中本地 JAR 包的路径可能不同需要手动修改systemPath。4. 注意事项要确保本地 JAR 包的路径是正确的不然会导致依赖引入失败。在不同的开发环境中要注意本地 JAR 包的路径是否一致。二、安装本地 JAR 包到本地 Maven 仓库1. 应用场景当我们需要在多个 Maven 项目中使用同一个本地 JAR 包时就可以把这个 JAR 包安装到本地 Maven 仓库。比如公司有一个公共的工具类 JAR 包多个项目都需要使用就可以把它安装到本地 Maven 仓库这样每个项目都可以通过 Maven 依赖来引入。2. 示例Java 技术栈第一步安装本地 JAR 包到本地 Maven 仓库mvn install:install-file -Dfilepath/to/local-library.jar -DgroupIdcom.example -DartifactIdlocal-library -Dversion1.0 -Dpackagingjar-Dfile指定本地 JAR 包的路径。-DgroupId、-DartifactId、-Dversion指定 JAR 包的坐标方便在pom.xml中引用。-Dpackaging指定 JAR 包的打包类型。第二步在pom.xml中引入依赖project !-- 项目基本信息 -- modelVersion4.0.0/modelVersion groupIdcom.example/groupId artifactIdmy-project/artifactId version1.0-SNAPSHOT/version dependencies !-- 引入安装到本地 Maven 仓库的 JAR 包 -- dependency groupIdcom.example/groupId artifactIdlocal-library/artifactId version1.0/version /dependency /dependencies /project3. 技术优缺点优点安装到本地 Maven 仓库后多个项目都可以方便地引用这个 JAR 包而且 JAR 包会被正确地打包到项目的最终构建产物中。缺点需要手动执行安装命令比较麻烦而且如果 JAR 包有更新需要重新安装。4. 注意事项安装 JAR 包时要确保groupId、artifactId、version等信息的准确性不然在pom.xml中引用时会找不到依赖。如果 JAR 包有更新要及时重新安装到本地 Maven 仓库。三、搭建本地 Maven 仓库1. 应用场景当公司内部有很多本地 JAR 包而且多个项目都需要使用这些 JAR 包时搭建一个本地 Maven 仓库是一个很好的选择。这样可以方便管理和共享这些本地 JAR 包。2. 示例Java 技术栈第一步搭建本地 Maven 仓库可以使用 Nexus 来搭建本地 Maven 仓库这里简单介绍一下搭建步骤下载 Nexus 安装包并解压。启动 Nexus 服务。配置 Nexus 仓库创建一个本地仓库用于存放本地 JAR 包。第二步将本地 JAR 包上传到本地 Maven 仓库mvn deploy:deploy-file -Dfilepath/to/local-library.jar -DgroupIdcom.example -DartifactIdlocal-library -Dversion1.0 -Dpackagingjar -Durlhttp://localhost:8081/repository/maven-releases/ -DrepositoryIdnexus-releases-Durl指定本地 Maven 仓库的地址。-DrepositoryId指定仓库的 ID。第三步在pom.xml中配置本地 Maven 仓库并引入依赖project !-- 项目基本信息 -- modelVersion4.0.0/modelVersion groupIdcom.example/groupId artifactIdmy-project/artifactId version1.0-SNAPSHOT/version !-- 配置本地 Maven 仓库 -- repositories repository idnexus-releases/id urlhttp://localhost:8081/repository/maven-releases//url /repository /repositories dependencies !-- 引入存放在本地 Maven 仓库的 JAR 包 -- dependency groupIdcom.example/groupId artifactIdlocal-library/artifactId version1.0/version /dependency /dependencies /project3. 技术优缺点优点方便管理和共享本地 JAR 包多个项目可以统一从本地 Maven 仓库获取依赖而且可以对 JAR 包进行版本控制。缺点搭建和维护本地 Maven 仓库需要一定的技术成本而且需要占用一定的服务器资源。4. 注意事项搭建本地 Maven 仓库时要确保服务器的稳定性和安全性。上传 JAR 包时要确保groupId、artifactId、version等信息的准确性。四、三种方式的对比总结1. 适用场景对比system 范围依赖适用于临时引入本地 JAR 包不考虑打包和共享的情况。安装本地 JAR 包到本地 Maven 仓库适用于多个项目需要使用同一个本地 JAR 包的情况。搭建本地 Maven 仓库适用于公司内部有大量本地 JAR 包需要管理和共享的情况。2. 优缺点对比方式优点缺点system 范围依赖简单直接不打包路径依赖安装本地 JAR 包到本地 Maven 仓库方便多个项目引用正确打包手动安装更新麻烦搭建本地 Maven 仓库方便管理和共享版本控制技术成本高占用资源3. 选择建议如果只是临时引入一个本地 JAR 包而且不需要考虑打包和共享那么可以选择 system 范围依赖。如果有多个项目需要使用同一个本地 JAR 包那么可以选择安装本地 JAR 包到本地 Maven 仓库。如果公司内部有大量本地 JAR 包需要管理和共享那么搭建本地 Maven 仓库是一个更好的选择。

更多文章