2016-07-29 128 views
0

我有一个Android应用程序,它使用我自己的库。我在同一时间开发它们,所以当我在库中进行更改时,我想在我的应用程序中进行测试。Android库使用本地Maven存储库

它们设置为不同的项目,因为我的图书馆也将被其他开发者使用。我们的工作方式是使用CI平台构建库,并将其部署到artifactory服务器。

然后再从App我通过artifactory的直接引用这个库。通过这种方式,当我的CI平台构建应用程序时,构建过程将从artifactory中获取lib,并且CI工作顺利。

这是一个很好的工作方式,但是在并行开发它们的时候很麻烦,因为我必须提交更改,创建一个pull请求,将其与开发分支合并并等待CI构建它并将其部署到artifactory服务器上,以便我可以在应用程序上进行测试。

从Java EE开发的到来,我使用Maven的安装,这被部署在本地Maven回购的神器的话,我可能已经从我的web应用程序中使用它。

我想做soemthing相似,即都gradle这个在我的本地回购部署我的神器,所以对当地回购神器被更新,但不会在远程之一。通过这种方式,我可以更轻松地进行调试,同时仍然保持CI设置。

但我不知道如何做到这一点的gradle上。 artifactory插件似乎只允许在artifactory服务器上部署。

什么想法?

回答

1

如果您使用的是maven插件,则可以运行安装任务以将工件部署到本地Maven repo [1]。将工件部署到本地Maven仓库之后,需要添加mavenLocal() [2]作为其中一个仓库来解决依赖关系。我使用的一种策略是始终为我的本地副本设置一个自定义版本,以便我可以确定本地版本正在获取 - 但是如果您选择不这样做,依赖项会按照存储库列出的顺序得到解决(所以你需要确保mavenLocal在你的Artifactory服务器之前)。

[1] https://docs.gradle.org/current/userguide/maven_plugin.htmlhttps://github.com/dcendents/android-maven-gradle-plugin

[2] https://discuss.gradle.org/t/how-to-use-maven-local-repository-for-gradle-build/2244