我們正在爲Android開發標準化我們的基礎架構,並且正在嘗試將依賴項管理納入我們的Android庫項目。我目前的軌道是使用與m2e-android的maven android插件。我們已經將Android工件上傳到我們的Artifactory存儲庫,其中包含Android SDK Deployer。我們也有一個內部框架,有幾個庫可以導入到我們的項目中,而且大部分都可以正常工作。Android項目依賴關係管理的狀態
我們現在面臨的問題是,包含資源文件的apklib依賴關係很難建立。 Maven插件可以正確配置類路徑,但是如果apklib具有需要由父Android項目引用的資源文件,則Eclipse無法找到它們,除非您簽出庫項目並通過ADT將其鏈接到父項目。
在閱讀關於問題https://github.com/rgladwell/m2e-android/issues/8,https://stackoverflow.com/questions/6269816/creating-closed-source-android-libraries#answer-6270768和APKLIB does not get installed in Maven Repo的m2e-android討論之後,我不相信maven是在ADT正確支持閉源apk庫之前要走的路。
我想知道你是如何處理這些類型的Android項目的依賴關係。除了使用Maven之外,還有哪些策略?
僅供參考,以下是我們迄今爲止所嘗試的。
- 沒有依賴管理。所有需要的罐子都存儲在lib文件夾中,並推送到源代碼控制倉庫。庫項目設置爲子文件夾,並推送到每個項目的源代碼管理庫。Eclipse項目設置也被推送。使用標準ADT Ant腳本構建的項目。
- Jar依賴到libs文件夾和庫依賴作爲git子模塊。使用標準ADT Ant腳本構建的項目。
- 使用maven進行依賴管理,包括使用apklib打包的庫項目。問題與apklibs中的資源文件。
您可以將您的庫項目和應用程序項目分組爲多模塊項目,請參閱示例[此處](https://github.com/jayway/maven-android-plugin-samples/tree/master/libraryprojects)。當將多模塊項目導入到Eclipse中時,m2e-android將自動設置庫項目並鏈接到應用程序項目。 – yorkw
酷我會嘗試。目前我們決定使用ant宏從git克隆庫項目。它不能解決依賴性傳遞性等問題,但由於我們的依賴關係圖在Android上很淺,所以大部分時間都不應該成爲問題。我們這樣做,它看起來有點像maven/ivy/gradle。該宏被稱爲「依賴」,我們有一個腳本,我們導入一個名爲update-dependencies的任務。在你的項目腳本上,你所要做的就是添加 。 –
AngraX
我們一直在使用Maven和[IntelliJ](http://www.jetbrains.com/idea/download/)。它像冠軍一樣處理apklib類型的依賴關係(子模塊或其他)。作爲額外的獎勵,(免費)社區版已經完全滿足我們的需求。 – Jonba