Gradle:我可以依赖不同项目中的模块吗?

时间:2016-08-17 18:56:02

标签: android-gradle android-gradle-2.0

我想建立一个具有以下结构的项目:

Project 1
  + build.gradle
  + settings.gradle
  + module A
      + build.gradle
      + src
      + ...
  + module B
      + build.gradle
      + src
      + ...
Project 2
  + build.gradle
  + settings.gradle
  + module C
      + build.gradle
      + src
      + ...
  + module D
      + build.gradle
      + src
      + ...

我希望Project 1的模块A依赖于Project 2的模块D.我希望这是一个源(不是maven artifact)依赖项,并且可以使用gradle 2.14和Android Studio 2.1。

我不控制Project 2的布局或它的root build.gradle。我所能做的就是把它拉进我的工作区并使用它。

我完全控制了Project 1,并且可以按照我想要的任何方式进行设置。我希望项目1的完整版本不会导致项目2的完整构建,仅:project2:moduleD。但是,任何有效的方法都可以。

我想知道如何为Project 1设置build.gradle文件,以及在模块A的build.gradle的dependency子句中放置什么。

2 个答案:

答案 0 :(得分:1)

我猜你所描述的并不是建立一个多项目,也就是说它们是两个独立的项目。如果你不能说服维护者在任何地方发布工件,你总是需要最新版本的Project 2.最好的办法是链接到项目的输出jar文件。

compile files('path/to/Project2/build/output.jar')

这需要在将最新源提取到系统后在项目2上运行构建。如果你有一个项目的特定位置,你可以自动化这一点,但所有这一切都非常脆弱。

答案 1 :(得分:0)

你试过一个符号链接吗?在项目1中创建一个符号链接到项目D的文件夹并将其添加到项目1的settings.gradle