好的,我意识到Gradle和Android Studio似乎认为所有的库应用程序都是为一个项目和一个项目构建的,但事实并非如此。我有许多共享的库应用程序,它们具有在整个组织内共享的共同目的。 Gradle似乎不太适合这种理想的解决方案。有人可以提供任何见解吗?Android Studio Gradle外部库项目
我在一个非常简陋的水平目前的结构是这样的:
|--Directory
| |--PROJECT A
| |---Module 1
| |--Project B
| |---Module 2
| |--Project c
| |--Module 3
/////////////////////////// ////////////////// 我当前的依赖关系结构如下所示: ////////////////////// ///////////////////////
项目A:(仅供参考,构建就好了)
项目A的settings.gr adle
include ':Module 1', ':Module 2'
project(':Module 2').projectDir = new File('../Project B/Module 2')
模块1的的build.gradle
dependencies {
compile project(':Module 2')
}
项目C:(仅供参考,BROKEN)
项目C的settings.gradle
include ':Module 3', ':Module 1'
project(':Module 1').projectDir = new File('../Project A/Module 1')
3单元的的build.gradle
dependencies {
compile project(':Module 1')
}
游:无法解析模块2模块1的的build.gradle文件里。
这是因为模块2的目录结构是在Project A的settings.gradle中建立的,所以Project B不知道从哪里渲染。
我明白,我可以添加
project(':Module 2').projectDir = new File('../Project B/Module 2')
到项目C,一切都将工作得很好。但是Project C不使用或不了解Module 2.我希望其他开发人员能够自由使用我的共享库项目,而无需深入了解并查看我使用的库项目,并将它们包括在它们的设置中。我如何在build.gradle而不是settings.gradle中指定我自己的依赖目录结构,以便所有使用它的人都可以访问它?
在第二个音符,但类似的话题。我有与JAR文件完全相同的问题。如果我在库项目的build.gradle中指定REPO,如:myRepo1并拥有一个myJar1。然后,当该库项目用于未定义库项目dependeny部分中包含该jar的repo的父项目中时,当编译项目(':libproject')为时,它无法解析库项目中的jar文件用过的。我必须在父级的build.gradle文件中复制repo指针,以便libproject将从父级应用程序构建。任何帮助这一个将不胜感激。由于并非每个应用都在每个应用中使用,所以这可能会变得多余。
“如何在build.gradle而不是settings.gradle中指定我自己的依赖目录结构,以便所有使用它的人都可以访问它?” - 将库项目中的AAR文件发布到工件存储库。需要该库的应用程序从工件存储库中获取它,这与从Maven Central或其他工件存储库获取依赖关系的方式相同。最简单的,这就是我会如何去做的。 – CommonsWare
我可以这样做到本地驱动器?因为我们目前没有任何本地的Maven服务器。 – Sam
另外,您是否确认现在可以使用AAR依赖关系。因为最后我听说Gradle还不支持。 https://code.google.com/p/android/issues/detail?id=55863 – Sam