无法在CUBA项目中正常使用JavaCV

在CUBA项目中引入JavaCV包后,发现其中的javacpp.jar不会发布到对应的lib目录中,不知道是什么问题?
build文件里这样写:
compile ‘org.bytedeco:javacv:1.5.4’
compile ‘org.bytedeco:javacpp:1.5.4’
发现javacpp-1.5.4.jar被发布到lib目录
但是如果这样写:
compile ‘org.bytedeco:javacv:1.5.4’
compile ‘org.bytedeco:javacpp:1.5.4’
compile ‘org.bytedeco:ffmpeg-platform:4.3.1-1.5.4’
compile ‘org.bytedeco:opencv-platform:4.4.0-1.5.4’
发现javacpp-1.5.4.jar没有发布到shared/lib目录
手动放到shared/lib下面,运行的时候会把他删除掉

在其他非CUBA项目中没有问题,但是用的是Maven

简单试了下,加上 opencv-platform 之后,会部署下列jar,这些像是 javacpp 在不同平台的 jar,所以应该就不需要单独的 javacpp 了,你可以查查是不是这么回事。
image

这些是包装的本地化的文件,比如DLL,SO等,但是JAVA需要的API在JAVACPP-1.54.jar里面。如果没有这个包,直接没法用,各种ClassNotFound
所有本地化文件的加载都在这个包里面进行的。
你可以随便写一句代码,调用一下API就会报错了

根据 Github 上的描述,改为只 import 一句:
compile 'org.bytedeco:javacv-platform:1.5.4'

然后添加 Github 上的 Demo 程序,没有出错:
image

您运行了这个程序吗?还是只是编译了这个程序。我试过只加这一个总包,一样的情况。因为那个JAR不会到LIB目录,所以运行的时候就会出现Class找不到

我上面说的问题不是编译时有错误,而是运行时出错,因为运行时缺少了一个jar包!

运行了:
image

麻烦您看一下shared/lib下面有那个javacv-cpp.jar吗?麻烦您调用一下
Loader.Detector.getPlatform()
打印环境信息,能成功吗?

您这是在WEB里运行的还是控制台运行的?

image

在一个 CUBA的 service 里面,加入 Github 上的 Demo 程序,然后点击这个绿色箭头就能运行:
image

我说的问题是在tomcat的web环境下运行啊,因为jar是没有发布到他的shared/lib下。如果只能跑main的控制台是没有问题的,因为jar都在本地的gradle下啊。您需要把WEB跑起来才行的

还有下文么?

刚试了下确实有你说的这个问题。我们看看是 CUBA gradle 插件的问题还是 javacv 的问题。

有进一步的结论吗?

可以在 github 上订阅该 issue