簡體   English   中英

在構建Android Studio中排除模塊

[英]Exclude module on build Android Studio

我有一個包含3個模塊的Android Studio項目。 A,B,C。A依賴於C,B依賴於C。我試圖加快構建速度,並且我意識到,每次執行assembleRelease / assembeDebug任務時,它都會構建所有模塊。 每次構建模塊A時,都只應構建A和C,因為B在該任務中沒有依賴性,對嗎? 每次構建模塊A時,如何避免構建模塊B?

模塊A的依賴項:

dependencies {
    compile project(path: ':c', configuration: 'release')
    provided files('libs/some-lib.jar')
}

模塊B的依賴項:

dependencies {
    compile project(path: ':c', configuration: 'debug')
}

模塊C的依賴關系:

dependencies {
    compile files('libs/other-lib.jar')
}

我已在評論中明確指出,我認為hacking settings.gradle以刪除模塊是一個壞主意。

因此,如果您無法在打開兩個或多個項目的情況下運行Android Studio,或者不想在命令行上調用Gradle,或者只是想禁用某些模塊,因為它們對您不感興趣,那么實際上是支持此操作的方法。 (至少在最新的Android Studio版本(如3.2.x)中。)

  1. 右鍵單擊頂級項目或“項目”視圖中的任何模塊
  2. 選擇加載/卸載模塊...
  3. 卸載您不想激活的模塊

由於這只會更改您的本地項目,並且絕不會偶然提交,因此這是安全地減少模塊開銷的安全方法。 我認為它甚至可以為您同步,因此您無需手動強制同步。

Android Studio存在一個錯誤 ,如果您使用Gradle項目對話框運行任務,這些任務將在根上下文中運行。 也就是說,如果仔細查看,即使子模塊任務也像在根級別上運行同一任務一樣運行。

解決方案:

  1. 使用命令行Gradle或Gradle包裝器。
  2. 始終運行兩個Android Studio實例(即,打開多個項目)

只需在根settings.gradle文件中刪除相關模塊(在本例中為B)的include語句,即可阻止Android Studio構建B,因為它將從整個Gradle項目中將其排除。 該模塊將保持不變,但是,如果您打算修改其中的任何代碼,則必須重新添加include語句。 另請注意,修改settings.gradle文件將要求Gradle Sync for Android Studio正常運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM