Java gradle中的本机依赖

Java gradle中的本机依赖,java,c++,gradle,native,Java,C++,Gradle,Native,我想在gradle中构建一个具有多个依赖项的java项目,一些是来自maven中央存储库的jar依赖项,一些是其他java项目依赖项,但还有一个本机JNI依赖项。我已经设法将gradle作为一个单独的项目来构建本机依赖关系 现在我想在java项目中将编译后的.so库作为依赖项导入。我想它会像这样工作: dependencies { compile project(':nameofnativedependency') } 该项目也列在my settings.gradle文件中。但是,当我

我想在gradle中构建一个具有多个依赖项的java项目,一些是来自maven中央存储库的jar依赖项,一些是其他java项目依赖项,但还有一个本机JNI依赖项。我已经设法将gradle作为一个单独的项目来构建本机依赖关系

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

dependencies {
    compile project(':nameofnativedependency')
}
该项目也列在my settings.gradle文件中。但是,当我编译项目时,我可能会得到一个错误:

无法确定任务“”测试的依赖项

找不到名为“default”的配置


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

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

要将java构建与本机构建集成,您可能需要使用插件,而不是传统的java插件。我一直在玩弄它,并且有一个我开始感到有点自豪的方法,包括从类文件生成头文件、构建libs、复制到src/main/resources并绑定到jar中,然后在运行时提取和加载libs的所有步骤(虽然这部分还没有完成;可能是要走的路).

交叉张贴在