使用Android Studio和gradle时,是否可以在项目之间共享库项目?

时间:2013-08-05 22:49:05

标签: android gradle android-studio

我正在努力弄清楚如何将图书馆项目导入Android Studio,使其可用于多个项目。新构建系统的文档意味着您需要将库项目导入到您正在处理的项目的根目录中:

  

Gradle项目还可以通过使用多项目设置来依赖其他gradle项目。多项目设置通常通过将所有项目作为给定根项目的子文件夹来工作   (http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Multi-project-setup

这是有问题的,因为正如我上面提到的,我想保持所有当前和未来项目都可以访问常用的库。例如,我目前正在尝试将Volley集成到一个新项目中进行评估,并假设我将来希望在其他多个项目中使用它。我将它克隆到我的“$ {PROJECT_ROOT} /”文件夹,这与我创建测试项目的级别相同,给了我:

$ {PROJECT_ROOT} / TestProject /测试
$ {PROJECT_ROOT} /凌空

在尝试以各种方式设置我的项目的build.gradle文件之后,我设法使应用程序编译的唯一方法是将Volley移动到TestProject的“main”项目中,给我:

$ {PROJECT_ROOT} / TestProject /测试
$ {PROJECT_ROOT} / TestProject /凌空

这不仅阻止我在其他不属于TestProject的项目中使用Volley而不重复它或第二次克隆它,但这意味着git希望我将它添加到我已建立的repo中TestProject的根。

如何在我的Android Studio项目中引用库项目而不将它们包含在项目本身中?

1 个答案:

答案 0 :(得分:2)

你不能将git与子模块一起使用吗?例如在.gitmodules文件中,您可以添加:

[submodule "volley"]
path = volley
url = https://path/to/volley/repository 

您可以将网址设置为Volley的官方存储库,或者您自己的内部版本的volley。其他项目可以以相同的方式设置并指向同一个volley存储库。

我认为这样,其他用户可以调用git clone,所有依赖项目都将在主项目文件夹中下载,他们不必担心单独下载库项目。

对于Volley,我只是将其编译成JAR文件并将其粘贴到主项目的/ libs文件夹中。也就是说,如果您不需要修改其来源。

[更新] 对于您不需要修改其源代码的库项目,您可以尝试使用Android Studio将它们编译为AAR文件以进行共享。 AAR文件类似于Android的JAR文件,因此您可以将它们添加到/ lib源文件夹,或将它们发布到本地/ Intranet maven存储库。如果选择maven路由,请在build.gradle中添加本地/ Intranet存储库,并引用已发布的库项目。

希望将来更多的库项目所有者将他们的项目构建到AAR文件并将它们发布到Maven Central Repository,所以我们可以直接从build.gradle文件中引用它们。