답변:
buildScript 블록의 저장소는 buildScript 종속성의 종속성을 가져 오는 데 사용됩니다. 이는 빌드의 클래스 경로에 배치되고 빌드 파일에서 참조 할 수있는 종속성입니다. 예를 들어 인터넷에 존재하는 추가 플러그인.
루트 수준의 리포지토리는 프로젝트가 의존하는 종속성을 가져 오는 데 사용됩니다. 따라서 프로젝트를 컴파일하는 데 필요한 모든 종속성.
나는 당신에게 명확한 개념을주고 싶습니다. 이러한 이유로 이해를 돕기 위해 build.grade 스냅 샷 코드를 첨부 하고 있습니다.
빌드 스크립트 종속성 :
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) 빌드 스크립트 종속성 jar 파일은 빌드 스크립트 저장소에서 다운로드됩니다. [프로젝트 외부 의존성]
ii) 루트 레벨 종속성 jar 파일은 루트 레벨 저장소에서 다운로드됩니다. [프로젝트 의존성]
여기,
"buildscript"블록은 응용 프로그램 코드가 아니라 빌드 스크립트 프로세스 자체의 종속성 만 제어합니다. 다양한 Gradle을 플러그인 등이 gradle-cobertura-plugin
, gradle-lint-plugin
buildscript의 REPOS에서 발견된다. 이러한 플러그인은 애플리케이션 코드의 종속성으로 참조되지 않습니다.
그러나 프로젝트 컴파일 및 테스트 실행 jar 파일 groovy all jar, junit and testng jar
은 루트 레벨 저장소에서 찾을 수 있습니다.
그리고 또 다른 한가지는 , maven { url("https://plugins.gradle.org/m2/") }
일부는 두 블록에서 사용할 수 있습니다. 그것들은 다른 의존성에 사용되기 때문입니다.
리소스 링크 : 빌드 스크립트 클로저와 코어 내의 종속성의 차이점
빌드 스크립트 (예 : build.gradle)에는 빌드 스크립트 자체 실행에 대한 종속성이있을 수 있습니다. 이러한 종속성은 buildScript 블록 내에 포함합니다. 기본을 넘어서는 Gradle의 4 장 에 자세히 설명되어 있습니다.