在gradle構建的buildScript
部分或構建的根級別聲明存儲庫之間有什麼區別。Gradle構建腳本依賴關係
選項1:
的build.gradle:
buildScript {
repositories {
mavenCentral();
}
}
或
的build.gradle:
repositories {
mavenCentral();
}
在gradle構建的buildScript
部分或構建的根級別聲明存儲庫之間有什麼區別。Gradle構建腳本依賴關係
選項1:
的build.gradle:
buildScript {
repositories {
mavenCentral();
}
}
或
的build.gradle:
repositories {
mavenCentral();
}
在buildScript BL上的存儲庫ock用於獲取buildScript依賴關係的依賴關係。這些是放置在構建的類路徑上的依賴關係,可以從構建文件中引用。例如互聯網上存在的額外插件。
根級上的存儲庫用於獲取項目依賴的依賴關係。所以你需要編譯你的項目的所有依賴。
構建腳本(即build.gradle)可能具有執行構建腳本本身的一些依賴關係。您可以將這些依賴關係放在buildScript塊中。 Chapter 4 of Gradle Beyond the Basics詳細描述。
鏈接無需身份驗證即可運行。 – RaGe
我想給你清楚的概念。爲此,我附上build.grade快照代碼以便更好地理解。
buildscript依賴關係:
buildscript {
repositories {
maven { url("https://plugins.gradle.org/m2/") }
}
dependencies {
classpath 'net.saliman:gradle-cobertura-plugin:2.3.2'
classpath 'com.netflix.nebula:gradle-lint-plugin:latest.release'
}
}
根水平/核心的依賴關係:
repositories{
mavenLocal()
maven { url("https://plugins.gradle.org/m2/") }
maven { url "https://repo.spring.io/snapshot" }
}
dependencies {
//Groovy
compile group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.3.10'
//Spock Test
compile group: 'org.spockframework', name: 'spock-core', version: '1.0-groovy-2.3'
//Test
testCompile group: 'junit', name: 'junit', version: '4.10'
testCompile group: 'org.testng', name: 'testng', version: '6.8.5'
}
所以,首先我想在一個字澄清
I) buildscript依賴jar文件會從 buildscript存儲庫下載。 [項目外部依賴項]
ii)根級依賴關係jar文件將從根級別下載 級庫。 [對於項目依賴]
這裏,
的「buildscript」塊僅控制用於buildscript過程本身的依賴關係,而不是應用程序代碼。由於各種gradle插件如gradle-cobertura-plugin
,gradle-lint-plugin
都可以從buildscript回購站找到。這些插件不會被引用爲應用程序代碼的依賴關係。
但是對於項目編譯和測試,運行jar文件如groovy all jar, junit and testng jar
將從根級存儲庫中找到。
而另一件東西,maven { url("https://plugins.gradle.org/m2/") }
部分可以在兩個塊中使用。因爲它們用於不同的依賴關係。
資源鏈接:Difference between dependencies within buildscript closure and core
如果我需要行家中央對我的buildscript和我的兩個項目,我需要聲明它兩次? –
是的,你需要確定兩次。 –
作爲一個例子,除了通常的「compile」和「testCompile」關鍵字外,Spring propdeps插件還可以添加到buildscript中以啓用依賴關係的「提供」和「可選」關鍵字。注意:war插件已經提供了「provided」關鍵字,您只需要在戰爭中部署的jar項目的propdeps。 – Powerlord