我在搖籃以下的多項目設置爲構建其使用一些庫多個Android應用:在多項目設置中,Gradle會評估每個子項目。我可以忽略一些子項目嗎?
比方說,我的根目錄是/workspace
的目錄結構如下(這是不完整):
/workspace/ --> root dir for the gradle build
/workspace/settings.gradle
...
/workspace/myapp1/Android/ --> contains the 1st app (has a build.gradle)
/workspace/myapp2/Android/ --> contains the 2nd app (has a build.gradle)
...
/market_licensing/library/ ---> contains a lib (has a build.gradle)
/play_apk_expansion/downloader_library/ ---> another lib (has a build.gradle)
settings.gradle
在/工作區/看起來是這樣的:
include ':market_licensing:library'
include ':play_apk_expansion:downloader_library'
include ':myapp1:Android'
include ':myapp2:Android'
當我在其中一個應用程序目錄中運行gradle時,它可以正常工作: 例如,/workspace/myapp1/Android>gradle clean
可以正常運行。
但是,這也會評估myapp2
的build.gradle項目。
這是根據Gradle手冊預計的。在http://www.gradle.org/docs/current/userguide/multi_project_builds.html中,部分56.3. Execution rules for multi-project builds
表示「Gradle總是評估多項目構建的每個項目並創建所有現有任務對象。」。
我的問題是,這會減慢我的構建不必要的。不必要的原因是,當我在構建myapp1
時,我不在乎myapp2
。我希望圖書館處於良好的狀態,但我不在乎myapp2
。這對於2款應用來說並不可怕,但想象一下有20款應用。我希望能夠儘快構建我目前正在開發的應用程序。
即使在評估階段,是否有辦法忽略其他子項目? 或者是否有其他方法來設置多個項目,這些項目依賴於相同的庫,但不相互依賴?
謝謝!這從命令行很好。後續問題:你碰巧知道如何讓Android Studio做到這一點? – treesAreEverywhere
我對Android Studio並不熟悉,但在gradle配置中應該有一個選項來手動添加命令行選項 –