2015-06-29 156 views
1

我想在gradle中构建一个具有多个依赖项的java项目,其中一些是来自maven中央资源库的jar依赖项,一些是其他java项目依赖项,但也存在本机JNI依赖项。我设法用gradle作为一个独立的项目来构建本地依赖项。gradle中的本地依赖关系

现在我想导入编译.so库作为依赖在我的Java项目。我认为它会这样工作:

dependencies { 
    compile project(':nameofnativedependency') 
} 

该项目也列在我的settings.gradle文件中。但是,当我编译该项目时,可能会出现以下错误:

Could not determine the dependencies of task ':test

Configuration with name 'default' not found.

因此,必须对错误进行配置。什么是正确的方式(我希望有一个)编译一个本地项目并在调用项目中导入.so文件?

回答

0

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

要将Java构建与本机构建集成,您可能需要使用java software model插件,而不是传统的java插件。我一直在玩它,并有一个buildscript,我开始感到有点自豪,包括从类文件生成标题,构建库,复制到src /主要/资源的所有步骤捆绑在一起jar,然后在运行时提取和加载libs(虽然这部分还没有完成; Scijava's native library loader可能是要走的路)。