我有一个多项目构建,其中一些模块是“纯java”模块,从这些java模块输出的jar文件被释放。这些java模块依赖于android库生成的jar文件。
有没有办法将android模块指定为java模块的依赖项?
项目结构如下:
Root
|
JavaModule
|
build.gradle
|
AndroidModule
|
build.gradle
JavaModule
的{{1}}是:
build.gradle
apply plugin:'java'
dependencies{
compile project(:AndroidModule)
}
的{{1}}是:
AndroidModule
如上所述添加依赖项不起作用,java模块无法在AndroidModule中找到符号。
我想问题是AndroidModule会生成一个build.gradle
文件,apply plugin:'android-library'
无法理解。
作为构建的一部分,aar
会生成java plugin
。有没有办法指定对此AndroidModule
文件的依赖?
答案 0 :(得分:1)
您已经正确识别出需要引用Android库项目的jar输出。有两种(ish)方法可以做到这一点。
只需将jar
文件复制到父项目中,然后像在Android项目中一样引用它们:
compile fileTree(dir: 'libs', include: ['*.jar'])
即,在项目中创建一个libs
文件夹,然后将jar放在那里。根据这些库的易变性,这可能是最简单也是最简单的方法。
如果您的图书馆不断变化,手动复制罐子很快就会很痛苦。当然,您可以使用一些脚本来自动化它,但更好的解决方案是将您的jar部署到本地Maven存储库。这可以使用标准的maven-publish
Gradle插件来完成。然后,您将像从Maven central那样引用依赖关系,即:
dependencies {
compile 'com.your.module:1.0.+@jar'
}
在此设置中,您构建每个库并将jar发布到您自己计算机上的本地maven存储库(例如),然后设置任何相关项目以从那里下载二进制文件。