我的产品正在使用名为matlab控件版本4.1.0的第三方依赖项。这个jar文件允许Java将命令发送到Matlab。
我们使用它的方式是在matlab中调用一个Java命令(由用户触发),这将在java插件中执行一堆计算,然后java向matlab发送通知,然后开始使用接收到的数据执行m代码来自Java。
到目前为止,jar文件存储在我们的存储库中,并直接加载到matlab中。
我们要转到使用maven的matlab-control v5.0.0。因此,我们认为这是摆脱jar文件的机会,将其作为来自maven的依赖项包含在我们的gradle构建中。
但是api似乎对Matlab不可见,该API返回一个异常“找不到org.n52.matlabcontrol.MatlabProxy类”。
如果我直接从Java测试连接(通过创建Java测试),则Java会自行启动matlab并请求执行命令(例如,hello world命令)。它工作正常,然后我可以实例化MatlabProxy。但是,如果我启动Matlab并尝试直接从中访问MatlabProxy,它将找不到它。
所以我的gradle构建似乎没有公开Matlab-control API。到目前为止,我已经尝试了以下方法:
apply plugin: 'java-library'
dependencies {
implementation('org.n52.matlab:matlab-control:5.0.0')
api('org.n52.matlab:matlab-control:5.0.0')
}
但是它不起作用,所以我想念什么?
答案 0 :(得分:0)
多亏JB Nizet为我提供了正确的方向,所以我找到了解决方案。 我只需要先创建一个配置,然后将依赖性分配给该配置即可复制它们:
configurations {
deployerJars
}
dependencies {
deployerJars group: 'org.n52.matlab', name: 'matlab-control', version: '5.0.0'
}
task copyToLib(type: Copy) {
into "$buildDir/libs"
from configurations.deployerJars
}