百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 软件资讯 > 正文

Maven 项目构建打包,如何引入本地 Jar 包?

ninehua 2024-12-11 16:21 30 浏览

上一篇讲到 Maven 离线仓库的使用,反响不错很多人收藏。这一篇还是继续聊 Maven,今日话题:“项目在构建打包时,Maven 如何引入本地 Jar 包?”

未收录原因

我们在开发时,经常会遇到某 Jar 包没有被 Maven 公共仓库收录的情况。公共仓库搜索:

  • 阿里云代理仓库:https://developer.aliyun.com/mvn/search
  • mvnrepository 仓库:https://mvnrepository.com/

未收录有以下几个原因:

  1. 开发者偏好。开发者个人或公司偏好,分享作品只在自己博客和官网上,或者只上传到 github 上。
  2. 历史原因。依赖资源创始时间太久远,那时候可能还没有 Maven,开发者延续习惯上传到原发布平台上,也未迁移或同步到 Maven 公共仓库。例如发布托管在 sourceforge 上。
  3. 闭源和版权原因。例如原来 Oracle 数据库的驱动包"ojdbc.jar"就是是闭源的,他们的法务部门很厉害,Oracle 如果不主动上传,公共仓库方也不敢随意引用,开发者每次只能在甲骨文官网下载驱动包。对于一个广泛应用的依赖包,开发时引入就相当麻烦。(现在 Oracle 已经将其同步到 Maven 公共仓库了,方便不少)

适合场景

  • 引用的依赖不在 Maven 中央仓库或者企业内部私有仓库。
  • 私人编写的包,或第三方公司提供的 Jar 包。(企业内部私有协议包/加密算法包等)
  • Maven 在内网离线开发。
  • 引入被定制改动过的 Jar 包。


解决方法:

Maven 坐标三要素:groupId、artifactId、version。假如有项目在文件夹 C:/xxx/projectA,下面介绍两种方式引入本地 Jar 包。

mvn install 安装到本地仓库

mvn install 是 Maven 的一个命令,用于将项目的构建产物安装到本地仓库,以便其他项目可以作为依赖使用。将依赖的 Jar 包放入到项目 C:/xxx/projectA/lib 目录下 。这里以 ojdbc 做示例:

<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>23.5.0.24.07</version>
</dependency>

手动导入,依赖包目录下打开 cmd 命令提示符窗口,执行命令把 Jar 安装到本地仓库里:

mvn install:install-file -Dfile=ojdbc8.jar -DgroupId=com.oracle.database.jdbc -DartifactId=ojdbc8 -Dversion=23.5.0.24.07 -Dpackaging=jar
  • -Dfile=制品文件文件名(可以是制品路径)
  • -DgroupId=Maven坐标组织名称
  • -DartifactId=Maven坐标制品名称
  • -Dversion=Maven坐标制品版本
  • -Dpackaging=打包类型

依赖包比较多时,使用 bat 命令批量执行,在 C:/xxx/projectA/lib 目录下创建 install.bat 脚本文件:

@echo off
call mvn install:install-file -Dfile=xxx.jar -DgroupId=com.xxx -DartifactId=xxx-xxx -Dversion=21.1 -Dpackaging=jar
call mvn install:install-file -Dfile=xxx.jar -DgroupId=com.xxx -DartifactId=xxx-xxx -Dversion=21.1 -Dpackaging=jar
call mvn install:install-file -Dfile=xxx.jar -DgroupId=com.xxx -DartifactId=xxx-xxx -Dversion=21.1 -Dpackaging=jar
pause

你可以依照依赖包路径,前往本地仓库确认是否成功安装。最后在 IDEA 里面刷新 Maven,重新加载 Jar 到项目就可以直接使用了。


修改项目 pom.xml 指定文件

拿到下载好的 Jar 包,在 IDEA 中,以下几步搞定 Maven 本地依赖:

  1. 将依赖的 Jar 包放入到项目 C:/xxx/projectA/lib 目录下 (这里以 hutool 做示例)
  2. 项目 pom.xml 配置依赖 Jar 坐标和本地路径(scope/path)
  3. 配置 spring-boot-maven-plugin 编译时将引用本地 Jar 包
<!-- pom.xml 片段 -->
<dependencies>
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.8.18</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/lib/hutool-all-5.8.18.jar</systemPath>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.youngdream.demo.DemoApplication</mainClass>
                <!--maven将引用的本地 jar 包一起打包-->
                <includeSystemScope>true</includeSystemScope>
            </configuration>
        </plugin>
    </plugins>
</build>

依赖包的 scope 配置 system 范围时,必须通过 systemPath 指定依赖包的路径。表示此类依赖不经过 Maven 仓库解析,而是与本机系统绑定的,提交代码时就要注意了,该依赖包也得提交保存,以免后期管理丢失 Jar 包。

(题外话:这样做法是简便开发起见,代码仓库拉下来就能直接用。实际上建议 Jar 包和代码分别单独管理,不建议把二进制文件放在 Git 上 托管,会造成项目体积臃肿,而且二进制文件在上传时也会因为文件过大被拒绝,你可以尝试调整 Git http/ssh 的 buffer 大小,或者使用 Git LFS 解决这个问题。)

如图: mvn package 打好 Jar 包后,再用 JD-GUI 打开验证下本地包是否打入(或将后缀名 jar 改为 rar,解压也可以看到)。

以上,就是项目在构建打包时 Maven 引入本地 Jar 包的两个方法。


END


文章对您有用的话,

记得 点赞 关注 收藏 哦~,

您的支持,就是我更新的最大动力~

相关推荐

VMware ESXI系统镜像定制

为什么要定制ESXi镜像呢?原因很简单,那就是H3C比较老的服务器,比如我用的UISR390XG2服务器,是没有适配的ESXi部署镜像的。而我要部署的H3CloudOS添加节点时只能选择H3C...

最新保姆级、超详细介绍VMware的使用(一)软件的安装

一、VMware简介VMWare虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMware采用了完全不同的概...

微软提供免费Windows 11 虚拟机下载

据ZDNet11月23日报道,微软(Microsoft)提供了免费的Windows11企业版虚拟机以供下载。针对开发人员,微软表示,“通过使用带有最新版本的Windows、开发工具、sdk和准备好的...

VMware Workstation Pro 17.5安装包下载安装教程

软件简介VMwareWorkstationPro17.5是一款专业功能最强大的虚拟机软件,用户可以在虚拟机同时运行各种操作系统,进行开发、测试、演示和部署软件,虚拟机中复制服务器、台式机和平板环...

VMware vCenter Server 8.0U3c 发布下载,修复 U3b 更新停止响应的问题

VMwarevCenterServer8.0U3c发布下载,修复U3b更新停止响应的问题VMwarevCenterServer8.0U3c发布下载-集中式管理vSphere...

最新整套VMware Workstation 15 Pro 官方简体中文版 + 永久密钥

VMwareWorkstation是深受全球用户信赖并屡获殊荣的虚拟机软件。它可以在单台PC上运行多个、多平台、多层面的操作系统与应用程序。并且支持快照和克隆,支持物理机与虚拟机间复制、移动,交...

VMware16虚拟机安装教程

系统装机教程也告一段落,接下来秋水给大家讲讲虚拟机的安装,这里呢虚拟机选择VMware。一、安装教程1、在软件官网下载VMware安装包,或者在后台回复获取秋水下载好的安装包。2、双击软件进行安装,并...

VMware虚拟机12.1下载:修复Win10镜像识别错误等问题

IT之家讯12月9日消息,虚拟机软件VMwareWorkstation迎来12.1更新版本,本次更新为维护性更新,修复了之前版本中存在的一些问题,比如将Win10首个重大更新ISO镜像错误识别为W...

VMware vCenter Server 8.0U3b 发布下载,新增功能概览

VMwarevCenterServer8.0U3b发布下载,新增功能概览ServerManagementSoftware|vCenter请访问原文链接:https://sysin.or...

下载VMware虚拟机:打造全能多系统桌面,让IT技术探索触手可及!

VMware虚拟机打造全能多系统桌面,助力IT技术探索在当今科技飞速发展的时代,IT技术正以前所未有的速度渗透到生活和工作的方方面面。无论是智能硬件、移动应用还是云计算服务,都离不开IT技术的支撑。掌...

如何在vmware workstation player虚拟机上安装VMware Tools工具

版本:vmwareworkstation16player&ubuntu64位。首先我们使用vmwareworkstation16player启动ubuntu64位虚拟机,然后点击虚...

VMware与CentOS安装配置指南

以下是一份详细的VMware虚拟机安装、配置及CentOS系统安装配置的指南,适合新手逐步操作:一、VMware虚拟机安装与配置下载并安装VMware下载地址:访问VMware官网,选...

VMware虚拟机与物理机文件交互,这8种方法送给你

上一期我们讲解过用VMWare虚拟机打造一个金刚不坏之身的操作系统,小伙伴们反应说方法不错,只是虚拟机与物理机文件交互方式不好操作,这期应小伙伴们的要求,给大家讲解下虚拟机与物理机文件交互的8种方式,...

VMware 17.0 Pro 版本正式发布,还有适配MacOS 的 Fusion 13 Pro下载

VMware17.0Pro官方下载地址:【点击获取】私聊VMware17.0Pro的新功能特性容器和Kubernetes支持使用vctlCLI构建/运行/拉/推容器映像。支持在Works...

VMware Tools安装失败?手把手教你本地安装

VMwareTools安装失败?作为虚拟机与物理机之间的"桥梁",VMwareTools能实现文件拖拽、剪贴板共享、分辨率自适应等关键功能。没有它,VMware虚拟机就变得非常不好...