2015-09-22 18 views
-1

我必須爲我的Macbook Pro格式化一些愚蠢的企業域遷移後,我一直對Gradle for Android生成無盡的悲傷。我一直在使用Gradle(包括命令行和Android Studio)來構建我的項目已經有一年多的時間了,而且在全新安裝之前一直沒有問題。我花了無數個小時在週末試圖解決這個問題,但沒有運氣,而且我真的快要把我的頭髮撕掉了!以下是我堅持用:爲Android構建Gradle和Maven存儲庫造成的困擾

搖籃建立已經放緩到爬行

我有一個習慣需要大約2分鐘,乾淨多項目(或Android的方面多模塊)項目構建 - 加上上傳檔案到(本地)Maven倉庫。現在,Gradle配置階段需要大約8分鐘!沒有什麼改變,因爲在Mac上進行全新設置後,我只是從Github回購庫中獲取了一些資源,並且正在使用版本爲2.2.1的gradle包裝器(如前所述)進行構建。不知道這是否重要,但我機器上的Gradle版本是2.6。我使用Maven - 不是用於構建,而是用於本地M2存儲庫,Maven版本是3.3.3。 Maven和Gradle都使用Homebrew安裝。無論是使用命令行還是使用Android Studio,Gradle運行時都是相同的。我正在使用Android Studio版本1.4-beta4。以下是我已經建立了的東西:

  • 我已經設置

    • 我已經設置了Maven的settings.xml指向本地Maven倉庫到默認位置`$ {}的user.home /平方米/存儲庫。使用Android Studio和支持資源庫(我的項目需要Play服務和支持庫)來升級Google資源庫
    • 我們需要將存檔上傳到我們的構建服務器上的公司Maven資源庫;爲了迴避這個問題,我使用gradle.properties來定義版本庫URL爲在Maven設置中設置的本地M2存儲庫
    • 該項目定義了Android構建工具版本1.1.0,雖然這是舊版本,但我試過最新1.3.1沒有運氣的建設時間
    • 可能相關:我的Mac Pro使用良好的硬盤,而不是較新的固態存儲。雖然這可能會影響建立時間,格式期間未更新的磁盤,而且,我相信,它不應該造成的影響大小等多個訂單

    未能解決當地M2回購

    文物

    我工作的主要項目是一個庫,我們有測試客戶端用於驗證功能。圖書館和測試客戶在Github回購庫中作爲單獨的項目進行維護。爲了不必在我的本地開發環境中對進行任何更改,我更願意將我的庫中的工件部署到本地M2回購庫,然後讓測試客戶端在本地定義和解決依賴關係。我使用全局gradle.properties來完成此操作,以覆蓋存儲庫URL(將其指向本地M2回購)。這工作得很好,直到磁盤格式,但因爲破碎。 Gradle永遠無法解決工件,但我可以在當地的M2回購中看到它們。我已經谷歌搜索高低(在Gradle論壇上,在這裏),但似乎無法弄清楚我錯過了什麼或做錯了什麼。作爲解決方法,我將測試客戶機作爲模塊添加到庫項目中,並將其構建爲單個多模塊項目。順便說一句,即使是這樣,我仍然遇到了上面提到的緩慢的Gradle構建時間問題。

    有人可以幫我嗎?

  • +0

    您可以運行'gradlew --profile x'來獲取詳細的時間消耗報告。 –

    +0

    如果您試圖將其分爲單獨的較小的關於某個主題的問題,您可能會從其他人那裏獲得更好的關注。這個網站的格式不適合排除故障,所以好的答案將取決於具有小而結構良好的問題。把情緒化的評論放下也許是明智的,因爲他們可能不會像你想像的那樣激勵別人。 – Jolta

    回答

    0

    我想通了。還有一點點我還是沒能神交,但拋開這裏是發生了什麼事:

    的gradle慢建立

    該項目的build.gradle文件宣佈對我們的企業供應鏈管理Maven倉庫的依賴。我複製了我的項目在本地M2回購中實際需要的任何依賴關係。一旦我用指向本地M2回購的文件URL替換了這個,Gradle構建時間就下降到了30-40秒。我仍然困惑的部分是,即使使用遠程回購,Gradle也應該下載一次工件並將它們緩存到Gradle緩存中。仍然需要弄清楚爲什麼它沒有這樣做。

    未能從當地M2回購

    解決文物這是我的一個糟糕的錯誤。在我的gradle.properties我列出的SNAPSHOT_REPOSITORY_URL覆蓋爲/Users/me/.m2/repository(用me替換爲用戶名)。我錯過了這裏的file://前綴。我有些驚訝,Gradle沒有把它叫出來,而是在/Users/me/.m2/repository指出的目錄中部署了這些工件,但可能我不明白這是如何工作的。一旦我添加了file://前綴,所有測試項目的構建就像一個魅力!

    0

    所以有你得ADRESS幾個問題:
    1. gradle這個不解決本地倉庫
    的藝術品 - 也許它在格式化過程中損壞(使用maven設置的測試項目爲
    其生成只有,如果你想驗證,指定一些現有的依賴關係)。
    回購的新設置可以解決此問題。
    2. gradle build慢
    好吧,沒有進一步的信息很難排除故障。您是否刷新了您的依賴關係,清理緩存,GRADLE_USER_HOME中是否有足夠的可用磁盤空間?

    +0

    是的,我沒有提到原始問題,但我已經嘗試刪除Gradle緩存('$ {user.home} /。gradle/caches'),刪除本地M2回購。另外,我將'M2_HOME'變量正確設置爲指向Maven安裝。版本是:Gradle - 2.6,儘管我用於構建的Gradle包裝器是2.2.1; Maven - 3.3.3; JDK 1.7 我使用的是運行OS Yosemite 10.10.5的Macbook Pro 2012中期版本。 – apd

    相關問題