springboot 依赖sapjco打包环境问题 It is not allowed to rename or repackage the original archive sapjco3.jar

时间:2024-05-20 08:34:14

1.添加外部依赖

新建lib文件夹添加外部依赖sapjcp3.jar --这个和maven仓库里的是一样的,开发者从网上自己找了一个。 同时将 so dll jnilib 文件都放在了这个目录。

springboot 依赖sapjco打包环境问题 It is not allowed to rename or repackage the original archive sapjco3.jar

2.配置pom文件

springboot 依赖sapjco打包环境问题 It is not allowed to rename or repackage the original archive sapjco3.jar外部依赖的情况下groupId artifactId version可以自己随意定义。

如果想把这个外部的依赖打包到springboot中,name需要添加一下配置,注意:<includeSystemScope>true</includeSystemScope>是关键。

springboot 依赖sapjco打包环境问题 It is not allowed to rename or repackage the original archive sapjco3.jar

重点:Maven打包会按照artifactId-version.jar的形式重新生成jar包到springboot打包后的\BOOT-INF\lib中,这样启动jar包会导致系统报错:

It is not allowed to rename or repackage the original archive “sapjco3.jar”

3.解决方法一: 

你可以通过手动修改jar包名称来解决此问题,但是这样就导致每次部署都需要去修改包名,无形中增加了工作量。

假设手动修改了jar包名,此时访问还会报错:java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path

此时需要你在jre/lib/amd64/server下添加so文件。

4.解决方法二:

a. 首先在jre/lib/amd64/server下添加so文件

b.项目打包时不要将外部依赖包打入到springboot的jar中。

c.在/jre/lib/ext中添加sapjco3.jar包。

5.注意事项:

所有的部署环境都要记得执行第4项中的步骤

参考链接:https://blog.****.net/qq_15329947/article/details/87893288