2016-08-17 111 views
0

我想建立具有以下结构的一个项目:Gradle:我可以依赖不同项目中的模块吗?

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 
     + ... 

我想项目1的模块A依赖项目2的模块D上。我想这是一个源(未行家伪影)依赖和与Gradle 2.14和Android Studio 2.1一起工作。

我不控制项目2的布局或它的根build.gradle。我所能做的就是将它拉进我的工作空间并使用它。

我可以完全控制Project 1,并且可以按照我想要的方式进行设置。我更希望Project 1的完整版本不会导致Project 2的完整版本,只有:project2:moduleD。尽管如此,任何有用的东西都可以。

我想知道如何建立的build.gradle文件项目1项,并把什么dependency条款在对的build.gradle模块A

回答

1

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

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

这就要求构建对项目2的最新源被拉到到系统后运行。如果你有一个特定的项目位置,你可以自动化这一点,但所有这些都很脆弱。

+0

您是正确的,这不是一个简单的“多项目”构建,在gradle的混淆术语中。相反,正如你所描述的那样,实际上是多个项目。 –

+0

如果你正在使用git,你可以将它作为子模块添加到你的项目中,并将项目配置为多项目 – Pieces

+0

这可能会起作用!你将如何配置相应的构建文件?项目2中的一个认为它是根。 Project 1中有一个settings.gradle。 –

0

你试过了一个符号链接吗?在项目1中创建一个符号链接,将项目D的文件夹添加到项目1的设置中。格式

+0

是的。我已经尝试过Symlink和Git Submodule。基本问题,即Gradle似乎需要单个根目录。 –

相关问题