我希望在名为MyProject的Android Studio项目中使用Gradle的新复合构建功能,该项目包括名为DroidLib的Android归档库(.aar)和名为JavaLib的Java库(.jar)。由于我无法让Gradle从我们的内部Artifactory中提取依赖项,因此这些库目前已经检入版本控制。也就是说,DroidLib项目将javaLib.jar检入libs文件夹下的git,而MyProject项目将DroidLib.aar检入其libs文件夹下的git。我想在DroidLib和amp;中做出改变。 JavaLib在调试和使用MyProject中的更改时,无需从依赖项目中手动重建。
Gradle中新的Composite构建功能提供了我需要的东西,但它看起来是通过命令行通过这样的标志触发的东西:
--include-build ../DroidLib
在Gradle文档中,看起来这个标志允许Gradle覆盖在本地项目中声明的依赖项,类似于在包含的构建中声明的项目。这是有道理的,因为他们都会使用相同的组/名称/版本方案。我无法理解如何在Android Studio中使用它,我的DroidLib依赖项被声明为基于本地文件系统的依赖项:
compile(name:'DroidLib-1.19', ext:'aar')
命令行标志如何告诉Gradle哪个依赖项被覆盖,因为在DroidLib上没有声明明显的组/名称/版本?另外,我如何在我的应用程序启动运行配置中使用此功能,该配置使用了Gradle-aware make功能?有没有办法将add'l选项传递给Gradle-aware make,还是我过度思考这里发生了什么?
答案 0 :(得分:1)
尚未推出(在IntelliJ 2016.3中)。
根据this blog post,该功能在IntelliJ 2016.3中:
使用复合构建,一切都变得更加简单。您只需通过Gradle工具窗口中的Add按钮(在我们的示例中为my-utils)附加这些库的Gradle项目,然后从原始项目的上下文菜单中选择Compose Build Configuration。
不幸的是,根据this release note,Android-Studio 2.3基于IntelliJ 2016.2。所以我们必须等待IntelliJ 2016.3合并到Android Studio = /。