Tôi muốn cho bạn quan niệm rõ ràng. Vì lý do này, tôi gắn build.grade đang chụp để hiểu rõ hơn.
phụ thuộc bản dựng:
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'
}
}
mức gốc / phụ thuộc cốt lõi:
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'
}
Vì vậy, trước tiên tôi muốn làm rõ bằng một từ duy nhất
i) tệp jar phụ thuộc bản dựng sẽ được tải xuống từ kho lưu trữ bản dựng. [Dự án phụ thuộc bên ngoài]
ii) tệp jar phụ thuộc cấp gốc sẽ được tải xuống từ kho lưu trữ cấp gốc. [Đối với phụ thuộc dự án]
Đây,
Khối bản dựng xây dựng trên nền tảng của Wap chỉ kiểm soát các phụ thuộc cho chính quá trình xây dựng, chứ không phải cho mã ứng dụng. Như các plugin gradle khác nhau như gradle-cobertura-plugin
, gradle-lint-plugin
được tìm thấy từ repos bản dựng. Các plugin đó sẽ không được tham chiếu dưới dạng phụ thuộc cho mã ứng dụng.
Nhưng để biên dịch dự án và kiểm tra các tệp jar chạy như thế groovy all jar, junit and testng jar
sẽ được tìm thấy từ kho lưu trữ cấp gốc.
Và một điều nữa , maven { url("https://plugins.gradle.org/m2/") }
phần có thể được sử dụng trong cả hai khối. Bởi vì chúng được sử dụng cho các phụ thuộc khác nhau.
Liên kết tài nguyên: Sự khác biệt giữa các phụ thuộc trong đóng bản dựng và cốt lõi