繁体   English   中英

用gradle构建公开依赖项

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM