idea本地jar包添加到项目的maven库 mvn install:install-file

news/2025/1/19 11:04:00/

背景

最近在开发项目中需要对接海康威视摄像头,进行视频、照片等数据的获取保存;海康提供的sdk的jar包是自己开发的,在maven库中是找不到的,在项目中需要手动指定jar包路径

<dependency><groupId>com.haikang</groupId><artifactId>examples</artifactId><systemPath>${project.basedir}/lib/examples.jar</systemPath><version>1.0</version>
</dependency>

这样配置,然后在本地调试是没有问题的。
然而,当把项目打包部署到客户的服务器运行时,调用海康sdk的时候报错
java.lang.ClassNotFoundException: com.sun.jna.examples.win32.W32API$HWND

发现问题

经检查发现,是因为打包的时后没有把examples.jar打包到war包中,导致调用对应的方法的时候找不到包

解决问题

先到网上去找本地jar包打包问题,看到了这篇文章:idea本地jar使用maven打包本地依赖实现自动编译到项目里的操作
找到该条命令:

mvn install:install-file-Dfile=F:\xxx\bigdata\2024\vision\lib\examples.jar-DgroupId=com.xxx.examples-DartifactId=com-xxx-examples-Dversion=1.0.0-Dpackaging=jar

将其中的路径和ID换成自己的,在idea中执行,报错:pom.xml not found in examples.jar
再次搜索解决方案

百度AI智能回答:你需要确保你指向的 JAR 文件是一个有效的 Maven 项目,并且 pom.xml 文件存在且配置正确。如果 JAR 文件不是 Maven 项目,你可能需要手动创建一个 pom.xml 文件来描述如何使用该 JAR 文件。
于是我在examples.jar的文件加下面创建了一个pom.xml文件,内容填写为:

<project><groupId>com.haikang</groupId><artifactId>examples</artifactId><version>1.0.0</version><packaging>jar</packaging><dependencies/>
</project>

然后将maven打包命令修改为:

mvn install:install-file -Dfile=D:\aaa\examples.jar -DpomFile=D:\aaa\pom.xml -Dgroupld=com.haikang -Dartifactld=examples -Dversion=1.0.0 -Dpackaging=jar

成功了!!!
最后,我在把maven库的依赖改成

<dependency><groupId>com.haikang</groupId><artifactId>examples</artifactId><version>1.0</version>
</dependency>

再打包项目,jar包已经包含进去了,且摄像头SDK调用成功


http://www.ppmy.cn/news/1564392.html

相关文章

ansible自动化运维实战--服务端安装、环境配置与测试(1)

文章目录 一、准备5台虚拟机二、ansible服务端安装2.1、epel-release安装与配置2.2、查询ansible源信息2.3、安装ansible2.4、检查ansible安装状态和命令 一、准备5台虚拟机 本文使用的系统是centos9&#xff0c;5台机子的IP规划以及主机名如下&#xff1a; 主机名IPansible1…

Hooks 使用规则

Hooks 使用规则 命名规则 Hook 必须 useXxx 格式来命名。 PS&#xff1a;这种命名规则也很易读&#xff0c;简单粗暴 调用位置 Hook 或自定义 Hook &#xff0c;只能在两个地方被调用 组件内部其他 Hook 内部 组件外部&#xff0c;或一个普通函数中&#xff0c;不能调用…

MySQL(高级特性篇) 06 章——索引的数据结构

一、为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构&#xff0c;就好比一本教科书的目录部分&#xff0c;通过目录找到对应文章的页码&#xff0c;便可快速定位到需要的文章。MySQL中也是一样的道理&#xff0c;进行数据查找时&#xff0c;首先查看查询条件…

C语言工具SNPRINTF函数

该函数包含在标准库中&#xff0c;以打印函数的格式将数据存入函数参数指定的数组中。 发现这个函数是在学习单片机I2C的软件应用时&#xff0c;需要将MPU6050陀螺仪模块的16位有符号数据通过串口发送到电脑进行调试。 应用中案例代码如下&#xff1a; void int16ToString(i…

飞牛os使用ddns-go配合华为云实现内网穿透

DDNS-Go 是一个开源的动态域名解析工具&#xff0c;它支持多种操作系统&#xff0c;包括 Windows、Mac 和 Linux&#xff0c;并且支持 ARM 和 x86 架构。以下是使用 DDNS-Go 的基本步骤&#xff1a; 1.下载和安装&#xff1a; 访问 DDNS-Go 的 GitHub 仓库&#xff08;&#xf…

从零开始打造AI知识库:使用爬虫自动化采集网页内容的完整教程

言简意赅的讲解crawler爬虫解决的痛点 童鞋们在实现私有化大语言模型和实现精准参数归纳与程序执行之后还是不满足AI相关的能力。在 AI 驱动的知识管理时代&#xff0c;快速搭建属于自己的知识库已成为很多开发者和团队的核心需求。本文将带你一步步创建一个基于网页爬取的知识…

细说STM32F407单片机独立看门狗IWDG的原理及使用方法

目录 一、独立看门狗的工作原理 二、独立看门狗的HAL驱动程序 1、初始化函数HAL_IWDG_Init() 2、刷新看门狗的函数HAL_IWDG_Refresh() 3、宏函数 三、独立看门狗使用示例 1、项目动作说明 2、工程配置 &#xff08;1&#xff09;DEBUG、USART6、GPIO、CodeGenrator &…

【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目

解决idea至少创建jdk17项目 问题 idea现在只能创建最少jdk17&#xff0c;不能创建java8了吗?解决 问题 idea现在只能创建最少jdk17&#xff0c;不能创建java8了吗 我本来以为是 IDEA 版本更新导致的 Bug&#xff0c;开始还没在意。 直到我今天自己初始化项目时才发现&am…