2014-03-05 75 views
2

我有多個Android應用程序,並且我創建了一個常見的Android庫項目和一個常用的Java庫項目(Android庫項目編譯了一個java項目)。這些庫充滿了我用於所有Android應用程序的通用組件。多個具有通用庫項目的Android項目?

我使用gradle作爲我的構建系統。

我使用git進行版本控制。

將所有內容鏈接在一起的最佳方式是什麼?請記住,庫中的內容仍在添加/更改,我需要一種方式將更改傳播到所有Android應用程序。複製/粘貼不是一個好的選擇。我已經嘗試了一些東西,但他們工作得並不好,所以我喜歡一些輸入。

編輯:也許值得一提的是,多個人正在從事這些項目。這不僅僅是我。

回答

2

當前版本的Android Studio有一個侷限性,它的所有模塊必須在文件系統的項目根目錄下,這種限制阻礙了很多人的處境,因爲他們經常希望這些公共庫存活別的地方。這似乎也是你的情況。

我們正在取消Android Studio中的這一限制,很快你就可以擁有項目根外的模塊。我認爲這可能是您最好的解決方案 - 您可以從源代碼管理中的任何有意義的地方將您的通用庫拉出來,將它們放在文件系統中任何有意義的地方,並將它們鏈接到任何需要它們的項目中。但是,這個功能還沒有發佈,但會在v0.5.0中顯示,希望這個星期能夠發佈。我沒有親自在我們的開發版本中對其進行測試,也無法保證它的工作效果如何,但無論如何它應該很快就會出現。

一些開發人員通過將腳本添加到settings.gradle文件中來設置不同的模塊根目錄,從而解決了這些限制。他們說它是有效的,但是我覺得它有點嚇人,因爲IDE並不期望事情能夠這樣工作,而且我不確定它是否存在問題。

如果您在Stack Overflow上閱讀這個問題的其他答案,它們會在此功能實施之前編寫,並且會有不同的建議。如果您不想等待0.5.0或其中存在阻止您使用它的問題,那麼可以遵循這個一般性建議,即將您的通用代碼編譯到發佈到Maven存儲庫的庫中(它可以是本地的,也可以是你的組中的開發人員),然後在需要它們的項目中使用Maven風格的依賴語句來獲取這些庫。這有一個缺點,就是需要打開單獨的項目來編輯這些庫中的代碼,以及更復雜的構建過程,但它會起作用。

+0

我曾希望找到一種版本控制的方式,但也許這是最簡單的。謝謝! – spierce7

+0

據我所知,目前可能有項目根目錄之外的模塊。 是否有可能將Maven樣式依賴關係鏈接到這些模塊?我很想在使用公司回購庫中的libaries的項目中使用IDE功能,例如「去聲明」。謝謝你的幫助 – sebastian