用gradle构建公开依赖项

时间:2019-04-02 15:33:41

标签: java maven gradle dependencies

我的产品正在使用名为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')
}

但是它不起作用,所以我想念什么?

1 个答案:

答案 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
}