gpt4 book ai didi

java - gradle 中的原生依赖

转载 作者:太空宇宙 更新时间:2023-11-04 13:31:49 25 4
gpt4 key购买 nike

我想在gradle中构建一个java项目,有几个依赖,有的是maven中央仓库的jar依赖,有的是其他java项目的依赖,但是还有一个原生的JNI依赖。我已经成功地将 gradle 的本地依赖项构建为一个单独的项目。

现在我想将编译后的 .so 库作为依赖项导入到我的 java 项目中。我认为它会像这样工作:

dependencies {
compile project(':nameofnativedependency')
}

该项目也列在我的 settings.gradle 文件中。但是,当我编译项目时,我会得到一个错误:

Could not determine the dependencies of task ':test

Configuration with name 'default' not found.

所以一定是配置错误了。编译 native 项目并在调用项目中导入 .so 文件的正确方法(我希望有一个)是什么?

最佳答案

Gradle native 插件使用新的 rule based software model .模型元素在 build.gradle 处理完成后才会被实例化,并且一旦实例化它们就是不可变的。要访问这些元素,您需要将代码放在 components 闭包中,并通过 $ 变量访问模型元素(请记住,以这种方式访问​​的元素将被实例化,因此不可变)。

要将 Java 构建与 native 构建集成,您可能需要使用 java software model插件,而不是遗留的 java 插件。我一直在玩弄它,并且有一个 buildscript我开始感到有点自豪,合并了从类文件生成 header 、构建库、复制到 src/main/resources 以捆绑在 jar 中的所有步骤,然后在运行时提取和加载库(尽管这部分还没有完全完成;Scijava's native library loader 可能是要走的路)。

关于java - gradle 中的原生依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31116531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com