有沒有辦法重用裏面init.gradle?
搖籃啓動腳本塊屬性
def REPO_URL = 'myRepoUrl'
initscript {
repositories {
maven {
url REPO_URL
}
}
dependencies {
classpath 'some dependency'
}
}
這給了我未知屬性錯誤定製initscript
塊外部屬性。我也嘗試過使用外部{}像這樣
ext {
REPO_URL = 'myRepoUrl'
}
與相同的錯誤。然而,它在所有其他配置塊中都可以工作,即使在init.gradle
之內也是如此。這迫使我複製initscript
塊的屬性和其餘配置。
經過多一點檢查後,它看起來完全失去了對周圍範圍的任何引用。我甚至不明白爲什麼從Groovy的角度來看它的行爲方式。
那麼這是否意味着Gradle以某種方式編譯並執行initscript方法而不執行周邊範圍?我對Gradle和Groovy相當陌生,並不知道這是可能的。 –
您可以在Groovy編譯過程中使用標準編譯器進行編譯,然後轉換Groovy腳本。在這種情況下,其中一種轉換應該是在腳本的其餘部分之前提取並評估'initscript'塊,因爲腳本的其餘部分需要在該塊的類路徑中聲明的相關性以執行,否則您將獲得編譯錯誤,因爲依賴關係不在類路徑中。正如我所說,雞蛋和雞蛋。 :-) – Vampire
爲了防止同事問我爲什麼要複製這段代碼,請鏈接到評論中。 –