[英]Exposing a dependency with a gradle build
我的产品正在使用名为matlab控件版本4.1.0的第三方依赖项。 这个jar文件允许Java将命令发送到Matlab。
我们使用它的方式是通过在matlab中调用一个Java命令(由用户触发),这将在java插件中执行一堆计算,然后java向matlab发送一个通知,然后开始对从Java接收到的数据执行m代码。
到目前为止,jar文件存储在我们的存储库中,并直接加载到matlab中。
我们想转到使用maven的matlab-control v5.0.0。 因此,我们认为这是摆脱jar文件的机会,将其作为来自maven的依赖项包含在我们的gradle构建中。
但是该API似乎对Matlab不可见,它返回一个异常“找不到类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')
}
但是它不起作用,所以我想念什么?
感谢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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.