2016-07-29 126 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