新建Springboot项目
Pom文件
<!--Spring boot 2.3.2-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>com.imysh</groupId>
<artifactId>jna</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.imysh</groupId>
<artifactId>examples</artifactId>
<version>1.0.0</version>
</dependency>
<!--springboot web组件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--springboot test-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--加入下面两项配置 否则jar包提示无主属性清单-->
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
pom中jna和examples这两个jar包是海康提供的,在maven仓库中没有,可以上传到自己的nexus私服,也可以安装到maven本地仓库,安装本地参考如下:
mvn install:install-file -DgroupId=com.imysh -DartifactId=jna -Dversion=1.0.0 -Dpackaging=jar -Dfile=jna.jar
将海康SDK工具放入项目中,然后项目结构如下
测试maven打包
编写单元测试方法
这里只测试sdk能否获取到系统的usb设备列表,在实现类中定义了输出设备列表信息
但是很遗憾运行单元测试的时候无情报错
一般遇到程序包不存在的错误(而且还是springboot不存在,汗),都会先检查maven依赖是否有问题,一通检查之后发现并没有依赖问题,命名刚刚maven打包都通过了,而且提示的这些程序包在idea中都能点的进去
尝试直接执行刚打包号的jar包
也没有问题,经过多次的集成海康sdk尝试,发现海康sdk集成的时候的确是会有这个问题,也可能是我集成的方式存在漏洞,最后在网上看到有一个办法解决程序包xxxx不存在的问题
到项目根目录下执行下面这个命令
mvn idea:module
执行完成之后然后重新运行单元测试方法
可以看到已经能够获取系统的usb设备了
PS
在集成海康sdk的时候常会有程序包不存在的情况,虽然可以通过mvn idea:module这个命令修复,但是每次都这样的话就不是我们想要的,也不知道是不是我集成的方式有问题,欢迎留言指正