Android工作室添加外部项目build.gradle
我有一个示例项目,具有以下设置:
/root + Pure Java Lib + Android Test Lib + Android Test Project
“ testing项目 ”依赖于“ testing库 ”,而最后一个取决于“ 纯Java库 ” 编译项目,启动这个设置工作得很好。
我现在正考虑导入以前的Eclipse工作区,并使用Android工作室,问题是项目设置是不同的,我想保持这种方式。
例如,如果使用前面的示例:
/root + Android Test Lib + Android Test Project /Some Other folder (another repository for example) + Pure Java Lib
我已经尝试了许多configuration,但是我没有find一种方法来引用父文件夹范围之外的项目(在本例中为“ root ”)。
在许多平台/模块中,您可以使用“..”在文件夹中向上移动,但这不适用于我,也许我错误地使用了它。
有谁知道这可以用Gradle来实现吗?
UPDATE
我会尝试更通用:
/C:/ /Project A + Module 1 - Pure Java + Module 2 - Android Test Lib + Module 3 - Android Test Project /Project B + Module 1 - Pure Java + Module 2 - Pure Java + Module 3 - Pure Java
我想在项目A中使用项目B的模块1。
假设Some Other Folder是一个Gradle项目,你可以在你的settings.gradle文件中添加如下内容:
include ':module1' project(':module1').projectDir = new File(settingsDir, '../Project B/Module 1')
你必须把你的文件settings.gradle这一行:
include ':module2' project(':module2').projectDir = new File(settingsDir, '../Project 2/Module2')
然后你必须在依赖关系树中添加你的builde.gradle(Module:app) ,这一行:
compile project(':module2')
或者进入Project Structure > app > Dependencies ,点击Add ,select3 Module Dependencies并select你的模块
使用Gradle 1.10(不知道这将是有效的其他版本),这是我想出了基于这里给出的答复http://forums.gradle.org/gradle/topics/reference_external_project_as_dependancy
我有一个api库项目,一个共同的图书馆项目和主要的应用程序项目。 每个都是一个独立的开发项目,这两个库是为了在多个应用程序之间共享的。
在常见项目的settings.gradle中:
def apiLibDir = file('../android-api/android-api-lib') def rootProjectDescriptor = settings.rootProject settings.createProjectDescriptor(rootProjectDescriptor, 'android-api-lib', apiLibDir) include ':android-api-lib'
然后在主应用程序项目settings.gradle:
def apiLibDir = file('../android-libs/android-api/android-api-lib') def rootProjectDescriptor = settings.rootProject settings.createProjectDescriptor(rootProjectDescriptor, 'android-api-lib', apiLibDir) include ':android-api-lib' def commonLibDir = file('../android-libs/android-common/android-common-lib') settings.createProjectDescriptor(rootProjectDescriptor, 'android-common-lib', commonLibDir) include ':android-common-lib'
在每个相应的build.gradle文件中,您只需通过settings.createProjectDescriptor中给出的名称来引用它们,就像您可以使用其他任何项目依赖项一样:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile project(':android-api-lib') compile project(':android-common-lib') }
这似乎工作。 它甚至没有为定义api库的多个DEX文件抛出一个错误,我怀疑这是因为它是同一个构build过程的一部分,Gradle足够聪明,可以把它全部弄清楚。
右键单击项目 – select“打开模块设置” – 在左侧窗格中select“模块” – 单击顶部的“+”符号 – select“导入模块”。
导入模块后。 您需要将其添加为当前项目的依赖项。
保持“模块”在左侧窗格中select并单击您的项目 – 现在进入依赖项选项卡,并点击位于底部的“+”符号 – select第三个选项“模块依赖项”,如果您已经正确导入项目,向您显示所有可用的模块,可以添加为您当前项目的依赖项。
正如Ethan所说,如果你将这个添加到你的settings.gradle,它会添加一个外部项目到Android Studio(在这个例子中,它在父文件夹中):
project(':../ProjectB/:module1')
然后,添加它作为你的一个项目的依赖项,只要把它添加到这个项目的build.gradle中,作为另一个这样的依赖项(你也可以这样做, 如图所示 ):
compile project(':../ProjectB/:module1')