使用 gradle 构建公开依赖项



我的产品正在使用名为 matlab 控件版本 4.1.0 的第三方依赖项。这个jar文件允许java将命令发送到matlab。

我们使用它的方式是在 matlab 中调用 java 命令(由用户触发),这在 java 插件中执行一堆计算,然后 java 向 matlab 发送通知,然后 matlab 开始执行 m 代码从 java 接收的数据。

到目前为止,jar 文件存储在我们的仓库中,并直接加载到 matlab 中。

我们想迁移到 matlab-control v5.0.0,它是在 maven 上。所以我们认为这是摆脱 jar 文件的机会,将其作为 maven 的依赖项包含在我们的 gradle 构建中。

但是,该 api 似乎对 Matlab 不可见,它返回异常"找不到类 org.n52.matlabcontrol.MatlabProxy"。

如果我直接从 java 测试连接(通过创建 java 测试),java 本身将启动 matlab 并请求执行命令(例如,hello world 命令)。它工作正常,然后我可以实例化一个 MatlabProxy。但是,如果我启动 Matlab 并尝试直接从它访问 MatlabProxy,它找不到它。

因此,我的 gradle 构建似乎没有公开 Matlab 控件 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
}

最新更新