使用公共图书馆项目的多个Android项目?

时间:2014-03-05 02:06:55

标签: android gradle android-gradle

我有多个Android应用程序,我创建了一个常见的Android库项目,以及一个常见的Java库项目(Android库项目编译java文件)。这些库中填充了我用于所有Android应用程序的常用组件。

我正在使用gradle作为我的构建系统。

我正在使用git进行版本控制。

将所有内容链接在一起的最佳方法是什么?请记住,库中仍然会添加/更改内容,我需要一种方法将更改传播到所有Android应用程序。复制/粘贴不是一个很好的选择。我已经尝试了一些东西,而且它们的效果并不好,所以我喜欢一些意见。

编辑:可能还值得一提的是,有多个人正在开展这些项目。这不仅仅是我。

1 个答案:

答案 0 :(得分:2)

当前版本的Android Studio有一个限制,即它的所有模块都必须位于文件系统中项目的根目录下,这种限制会妨碍很多人处理你的情况,因为他们经常希望这些公共库存在于某个地方其他。看来你也是如此。

我们正在Android Studio中解除此限制,很快您就可以在项目根目录之外拥有模块了。我认为这可能是最适合您的解决方案 - 您可以从源代码控制中的任何有意义的位置提取公共库,将它们放在文件系统中的任何有意义的位置,并将它们链接到需要它们的任何项目中。但是,这还没有,但会出现在v0.5.0中,这将有希望在本周结束。我没有亲自在我们的开发版中测试它,也无法保证它的工作情况,但无论如何它应该很快就会出现。

一些开发人员通过在 settings.gradle 文件中添加脚本来设置不同的模块根目录,从而解决了这些限制。他们说它有效,但我发现它有点吓人,因为IDE只是不期望事情以这种方式工作,我不确定它是否有问题。

如果您在Stack Overflow上阅读此问题的其他答案,则会在实现此功能之前编写这些答案,并且会有不同的建议。如果您不想等待0.5.0或者存在阻止您使用它的问题,您可以遵循一般建议,即将您的公共代码编译到您发布到Maven存储库的库(它可以是您的机器本地的,也可以是您组中开发人员共有的),并在需要它们的项目中使用Maven样式的依赖语句来获取这些库。这样做的缺点是你需要打开单独的项目来编辑这些库中的代码,以及更复杂的构建过程,但它会起作用。