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

ops/2025/1/19 4:25:13/

背景

最近在开发项目中需要对接海康威视摄像头,进行视频、照片等数据的获取保存;海康提供的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/ops/151272.html

相关文章

【SpringBoot】深度解析 Spring Boot 拦截器:实现统一功能处理的关键路径

前言 ???本期讲解关于拦截器的详细介绍~~~ ??感兴趣的小伙伴看一看小编主页&#xff1a;-CSDN博客 ?? 你的点赞就是小编不断更新的最大动力 ??那么废话不多说直接开整吧~~ 目录 ???1.拦截器 ??1.1拦截器快速入门 1.?定义拦截器 2.配置拦截器 ??1.2拦…

sql server 常用运维SQL

12.定位SQL查询SQL语句执行时间和IO消耗 SELECT s2.dbid, (SELECT TOP 1 SUBSTRING(s2.text,statement_start_offset / 2+1 , ( (CASE WHEN statement_end_offset = -1 THEN (LEN(CONVERT(nvarchar(max),s2.text)) * 2) ELSE statement_end_offset END) - statement_start_offs…

初识JVM HotSopt 的发展历程

目录 导学 目前企业对程序员的基本要求 面向的对象 实战 学习目标 JVM 是什么 JVM 的三大核心功能 各大 JVM look 看一下虚拟机 HotSopt 的发展历程 总结 导学 目前企业对程序员的基本要求 面向的对象 实战 学习目标 JVM 是什么 JVM 的三大核心功能 即时编译 主要是…

什么情况下适合使用静态路由?什么情况下适合使用动态路由?_什么时候用静态路由什么时候用动态

2 静态路由 静态路由是由网络管理员根据网络拓扑&#xff0c;使用命令在路由器上配置的路由&#xff0c;这些静态路由信息指导报文发送&#xff0c;静态路由方式也无需路由器进行计算&#xff0c;但它完全依赖于网络管理员的手动配置。 补充一下&#xff0c;默认路由是一种特…

LeetCode100之搜索二维矩阵(46)--Java

1.问题描述 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回…

向harbor中上传镜像(向harbor上传image)

向 Harbor 中上传镜像通常分为以下几个步骤&#xff1a; 1、登录 Harbor 2、构建镜像 3、标记镜像 4、推送镜像到 Harbor 仓库 1、登录 Harbor 首先&#xff0c;确保你已经能够访问 Harbor&#xff0c;并且已经注册了账户。如果还没有 Harbor 账户&#xff0c;你需要先注册一…

1.6 阅读k8s源码的准备工作

准备工作 找个合适的ide 比如goland 下载k8s源码 项目地址 https://github.com/kubernetes/kubernetes可以git下载&#xff0c;也可以下载zip包&#xff0c;还可以go get 下载 git clone https://github.com/kubernetes/kubernetes.git 本教程基于k8s 1.21 版本 k8s组件代…

Java语言的软件工程

Java语言的软件工程 引言 在当今信息技术飞速发展的时代&#xff0c;软件工程作为一门应用广泛的学科&#xff0c;承担着开发高质量软件系统的重要责任。Java语言以其跨平台特性、安全性和强大的库支持&#xff0c;已经成为软件工程领域中最流行的编程语言之一。本文将深入探…