Android gradle java和android子项目

时间:2014-11-03 22:17:17

标签: android gradle android-gradle

我有一个多项目构建,其中一些模块是“纯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文件的依赖?

1 个答案:

答案 0 :(得分:1)

您已经正确识别出需要引用Android库项目的jar输出。有两种(ish)方法可以做到这一点。

手动方法

只需将jar文件复制到父项目中,然后像在Android项目中一样引用它们:

compile fileTree(dir: 'libs', include: ['*.jar'])

即,在项目中创建一个libs文件夹,然后将jar放在那里。根据这些库的易变性,这可能是最简单也是最简单的方法。

maven方法

如果您的图书馆不断变化,手动复制罐子很快就会很痛苦。当然,您可以使用一些脚本来自动化它,但更好的解决方案是将您的jar部署到本地Maven存储库。这可以使用标准的maven-publish Gradle插件来完成。然后,您将像从Maven central那样引用依赖关系,即:

dependencies {
    compile 'com.your.module:1.0.+@jar'
}

在此设置中,您构建每个库并将jar发布到您自己计算机上的本地maven存储库(例如),然后设置任何相关项目以从那里下载二进制文件。