掉坑了,小乌龟SVN默认提交的文件竟然不含 .so

背景

发现一个小问题,归档项目部署包中竟然没有第三方 JNI 库,它是一个用 C 语言实现的 .so 文件。这导致项目部署的时候报 JNI 加载失败错误,具体怎么回事儿呢?

加载 JNI 异常问题

有一个项目的权限校验功能为了增加一点点可靠性,而采用 C 实现的。虽然 C 也能反编译,但是多少增加了一点成本,所以心理感觉还是靠谱一点。C 编译后的库函数是一个 .so 文件,放在项目 bin 目录下。

昨天从 SVN 检出部署包部署时,应用报了一个错:

java.lang.UnsatisfiedLinkError: Can't load library: /app/bin/xxx.so
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
	at java.lang.Runtime.load0(Runtime.java:809)
	at java.lang.System.load(System.java:1086)

定位发现 bin 目录下没有 .so 库文件,怀疑是 SVN 上传的问题。

验证 SVN 对 so 文件的行为

验证了一下,新增五个文件,三种不同类型,右键“commit" 操作时,无版本的新文件中只有两个:
在这里插入图片描述
问题根源,右键 SVN 配置信息,ignore 列表中包含了几种:
在这里插入图片描述

解决办法

移除上述红框中的 *.so 配置即可:
在这里插入图片描述

启示录

为什么默认文件排除了 .so 文件呢?可能是为了安全吧,自定义库毕竟是外来的,不一定靠谱。

大概现在用 SVN 的公司很稀少了吧,前两天有网友评论说还用 SVN 的公司,技术应该也很落后。工具也存在鄙视链啊,看来我也得补充一点 Git 的知识了!

评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值