[Maven] 打包编译本地Jar包报错的几种解决办法

目录

方式1:通过scope指定

方式2:通过新建lib

方式3:通过build节点打包依赖​​​​​​​

方式4:安装Jar包到本地

方式5:发布到远程私有仓库

方式6:删除_remote.repositories

方式7:打包源码到本地仓库


一般地,maven pom引入本地jar包的几种方式有:(请根据优缺点自行选择)

方式1:通过scope指定

通过scope指定为system,systemPath指定本地路径引入

        <dependency><groupId>com.test.common</groupId><artifactId>common-util</artifactId><version>1.0.0</version><scope>system</scope><systemPath>lib/common-util-1.0.0</systemPath></dependency>

如果项目有很多jar包,则需要增加所有jar的本地引用地址;

方式2:通过新建lib

通过新建lib,之后通过工具添加依赖。但生产打包上线重新打包时依然有问题,所以此种方式只方便开发环境。

方式3:通过build节点打包依赖

通过新建lib,并添加jar包后,通过build节点打包依赖(此方式适用打包上线,但开发环境仍然需要结合方式2)

    <build><resources><resource><directory>lib</directory><targetPath>/BOOT-INF/lib/</targetPath><includes><include>**/*.jar</include></includes></resource></resources></build>

方式4:安装Jar包到本地

安装到本地命令:

mvn install:install-file -DgroupId=[groupId] -DartifactId=[artifactId] -Dversion=[version] -Dpackaging=jar -Dfile=[path to file]

例如:

mvn install:install-file -DgroupId=org.pentaho -DartifactId=pentaho-aggdesigner-algorithm -Dversion=5.1.5-jhyde -Dpackaging=jar -Dfile=D:\test\jar\pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar

方式5:发布到远程私有仓库

发布到远程私有仓库

mvn deploy:deploy-file -DgroupId==[groupId]-DartifactId=[artifactId] -Dversion=[version] -Dpackaging=jar -Dfile=[path to file]-Durl=[url] -DrepositoryId=[id]

需要有私服。

方式6:删除_remote.repositories

对于有些项目本来pom引用的是私服的jar包,但由于私服无法提供连接,但是复制了别人的repository下所有包,但打包时仍然每次都尝试去远程检查jar包而报错。

可删除二方包的_remote.repositories文件,避免maven在更换镜像的时候,每次都尝试去远程检查jar包。

这里提供一个bat脚本来批量删除,或者也可以使用Windows文件搜索工具Everything来完成。

@echo off
rem C:\Users\uuu\.m2\repository\cn\tongdun
rem C:\Users\uuu\.m2\repository\cn\fraudmetrix
rem C:\Users\uuu\.m2\repository\cn\tongdun
set REPOSITORY_PATH=C:\Users\uuu\.m2\repository\cn\fraudmetrix
rem searching...
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*_remote.repositories*"') do (rem echo %%idel /s /q %%i
)
rem finished
echo end
pause

方式7:打包源码到本地仓库

在有源码的情况下,可以使用maven打包源码到本地仓库

mvn clean install

然后又可以通过pom简便的引用了:

        <dependency><groupId>com.test.common</groupId><artifactId>common-util</artifactId><version>1.0.0</version></dependency>

打包之后类似于三方jar包的仓库形式:

以上7中方法,可以根据需要的场景使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3249829.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

TCP三次握手与四次挥手详解

1.什么是TCP TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的通信协议&#xff0c;属于互联网协议族&#xff08;TCP/IP&#xff09;的一部分。TCP 提供可靠的、顺序的、无差错的数据传输服务&…

element UI :el-table横向列内容超出宽度,滚动条不显示问题

是否能解决你问题的前提 **看到这篇文章的解决问题的方案之前&#xff0c;请先回忆你是否在项目中的全局样式或者私有组件中去单独设置过滚动条样式。如果有 请继续往下看&#xff1a;**单独设置过滚动条样式代码实例&#xff1a; ::-webkit-scrollbar {/*滚动条整体样式*/wi…

React@16.x(62)Redux@4.x(11)- 中间件2 - redux-thunk

目录 1&#xff0c;介绍举例 2&#xff0c;原理和实现实现 3&#xff0c;注意点 1&#xff0c;介绍 一般情况下&#xff0c;action 是一个平面对象&#xff0c;并会通过纯函数来创建。 export const createAddUserAction (user) > ({type: ADD_USER,payload: user, });这…

ExoPlayer架构详解与源码分析(15)——Renderer

系列文章目录 ExoPlayer架构详解与源码分析&#xff08;1&#xff09;——前言 ExoPlayer架构详解与源码分析&#xff08;2&#xff09;——Player ExoPlayer架构详解与源码分析&#xff08;3&#xff09;——Timeline ExoPlayer架构详解与源码分析&#xff08;4&#xff09;—…

git教程, 命令行版

前言 git就是代码版本管理系统&#xff0c;很简单的作用就是每一次commit之后&#xff0c;修改文件都是跟上一次commit的仓库文件做对比&#xff0c;也可以调出历史的文件查看某次commit修改了什么东西 0环境准备&#xff1a; 安装git, 百度一下&#xff0c;然后打开cmd&…

[word] word表格跨页断开实现教程 #职场发展#媒体

word表格跨页断开实现教程 选中整个word表格 单击鼠标右键&#xff0c;选择“表格属性”选项 切换至“行”标签&#xff0c;找到“允许跨页断行”选项 勾选上“允许跨页断行”&#xff0c;单击“确定”按钮&#xff0c;完成&#xff01; word表格跨页断开实现教程的下载地址&a…

【机器学习】--下采样原理及代码详解

下采样&#xff08;Downsampling&#xff09;是信号处理、图像处理和机器学习中的一个关键概念&#xff0c;主要通过减少数据点的数量来降低信号或图像的采样率 一、定义与原理 定义&#xff1a;下采样是指通过减少数据点的数量来降低信号或图像的采样率。在图像处理中&#…

【05】LLaMA-Factory微调大模型——初尝微调模型

上文【04】LLaMA-Factory微调大模型——数据准备介绍了如何准备指令监督微调数据&#xff0c;为后续的微调模型提供高质量、格式规范的数据支撑。本文将正式进入模型微调阶段&#xff0c;构建法律垂直应用大模型。 一、硬件依赖 LLaMA-Factory框架对硬件和软件的依赖可见以下…

270-VC709E 基于FMC接口的Virtex7 XC7VX690T PCIeX8 接口卡

一、板卡概述 本板卡基于Xilinx公司的FPGA XC7VX690T-FFG1761 芯片&#xff0c;支持PCIeX8、两组 64bit DDR3容量8GByte&#xff0c;HPC的FMC连接器&#xff0c;板卡支持各种FMC子卡扩展。软件支持windows&#xff0c;Linux操作系统。 二、功能和技术指标&#xff1a; 板卡功…

全网最适合入门的面向对象编程教程:20 类和对象的 Python 实现-组合关系的实现与 CSV 文件保存

全网最适合入门的面向对象编程教程&#xff1a;20 类和对象的 Python 实现-组合关系的实现与 CSV 文件保存 摘要&#xff1a; 本文主要介绍了在使用 Python 面向对象编程时&#xff0c;如何实现组合关系&#xff0c;同时对比了组合关系和继承关系的优缺点&#xff0c;并讲解了…

初阶数据结构的实现1 顺序表和链表

顺序表和链表 1.线性表1.1顺序表1.1.1静态顺序表&#xff08;不去实现&#xff09;1.1.2动态顺序表1.1.2.1 定义程序目标1.1.2.2 设计程序1.1.2.3编写代码1.1.2.3测试和调试代码 1.1.2 顺序表的问题与思考 1.2链表1.2.1链表的概念及结构1.2.1.1 定义程序目标1.2.1.2 设计程序1.…

Ai先行者工具与其他品牌大比拼!

AI先行者工具凭借其独特的技术优势和创新能力&#xff0c;成为了行业的焦点。那么&#xff0c;它究竟有哪些过人之处呢&#xff1f; AI先行者工具在算法优化上做了大量的工作。通过深度学习和自然语言处理技术&#xff0c;它能够更准确地理解和回应用户的需求&#xff0c;提供…

Haproy服务

目录 一.haproxy介绍 1.主要特点和功能 2.haproxy 调度算法 3.haproxy 与nginx 和lvs的区别 二.安装 haproxy 服务 1. yum安装 2.第三方rpm 安装 3.编译安装haproxy 三.配置文件详解 1.官方地址配置文件官方帮助文档 2.HAProxy 的配置文件haproxy.cfg由两大部分组成&…

linux中list的基本用法

内核链表 1 list_head 结构 为了使用链表机制&#xff0c;驱动程序需要包含<linux/types.h>头文件&#xff0c;该文件定义了如下结构体实现双向链&#xff1a; struct list_head {struct list_head *next, *prev; };2 链表的初始化 2.1 链表宏定义和初始化 可使用以…

如何在Mac下修改VSCode侧边栏字体大小

在日常使用VSCode&#xff08;Visual Studio Code&#xff09;进行开发时&#xff0c;我们有时需要对IDE&#xff08;集成开发环境&#xff09;的界面进行一些个性化的调整&#xff0c;以提升我们的开发体验。 比如&#xff0c;有些用户可能会觉得VSCode的侧边栏字体大小不符…

JavaDS —— 二叉树

树的基本概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看 起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 树形结构中&#xff0c;子树之间不能有…

健康问题查询找搜索引擎还是大模型

随着自然语言处理&#xff08;NLP&#xff09;的最新进展&#xff0c;大型语言模型&#xff08;LLMs&#xff09;已经成为众多信息获取任务中的主要参与者。然而&#xff0c;传统网络搜索引擎&#xff08;SEs&#xff09;在回答用户提交的查询中的作用远未被取代。例如&#xf…

idea怎么配置gradle多个版本

1.背景 gradle版本很多,而且很多时候版本是不兼容的,我们希望拉取下来的代码就包含已经配置好的版本,而不是去配置本机的gradle版本..... 意思就是要实现项目A可以用6.X版本 项目B可以使用7.X版本 项目C可以用9.X版本..... 2.配置方式 步骤一:项目根路径下保留一个文件夹…

阿里云ACP云计算高级攻城狮通用知识

&#x1f525;概述 阿里云云计算高级工程师ACP认证是面向使用阿里云云计算产品的架构、开发、运维类人员的专业技术认证&#xff0c;主要考核考生利用阿里云云计算技术服务体系设计稳定、安全、高性能、易扩展、低成本的企业云计算架构的能力。 前提&#xff1a;在写适用人群…

【ROS2】高级:从包文件读取 (C++)

目标&#xff1a;在不使用 CLI 的情况下从包中读取数据。 教程级别&#xff1a;高级 时间&#xff1a;10 分钟 目录 背景 先决条件 任务 1 创建一个包裹2 编写 C 读取器3 构建并运行 摘要 背景 rosbag2 不仅提供 ros2 bag 命令行工具。它还提供了一个 C API&#xff0c;用于从您…