Gradle - Quản lý phụ thuộc
Tập lệnh xây dựng Gradle xác định một quy trình để xây dựng các dự án; mỗi dự án chứa một số phụ thuộc và một số ấn phẩm. Phụ thuộc có nghĩa là những thứ hỗ trợ để xây dựng dự án của bạn, chẳng hạn như tệp JAR bắt buộc từ các dự án khác và các tệp JAR bên ngoài như JDBC JAR hoặc Eh-cache JAR trong đường dẫn lớp. Ấn phẩm có nghĩa là kết quả của dự án, chẳng hạn như tệp lớp thử nghiệm và tệp xây dựng, như tệp chiến tranh.
Tất cả hầu hết tất cả các dự án đều không khép kín. Họ cần các tệp do các dự án khác xây dựng để biên dịch và kiểm tra các tệp nguồn. Ví dụ: để sử dụng Hibernate trong dự án, bạn cần phải bao gồm một số JAR Hibernate trong classpath. Gradle sử dụng một số tập lệnh đặc biệt để xác định các phần phụ thuộc cần được tải xuống.
Gradle lo xây dựng và xuất bản các kết quả ở đâu đó. Xuất bản dựa trên nhiệm vụ mà bạn xác định. Nó có thể muốn sao chép các tệp vào thư mục cục bộ hoặc tải chúng lên kho lưu trữ Maven hoặc lvy từ xa hoặc bạn có thể sử dụng các tệp từ một dự án khác trong cùng một bản dựng đa dự án. Chúng ta có thể gọi quá trình xuất bản một nhiệm vụ là xuất bản.
Khai báo sự phụ thuộc của bạn
Cấu hình phụ thuộc không là gì ngoài định nghĩa tập hợp các phụ thuộc. Bạn có thể sử dụng tính năng này để khai báo các phụ thuộc bên ngoài có nghĩa là bạn muốn tải xuống từ web. Điều này xác định các giá đỡ khác nhau như sau.
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
Cấu hình phụ thuộc
Cấu hình phụ thuộc không là gì ngoài định nghĩa một tập hợp các phụ thuộc. Bạn có thể sử dụng tính năng này để khai báo các phần phụ thuộc bên ngoài mà bạn muốn tải xuống từ web. Điều này xác định các cấu hình tiêu chuẩn khác nhau sau đây.
Compile - Các phụ thuộc cần thiết để biên dịch nguồn sản xuất của dự án.
Runtime- Các phụ thuộc được yêu cầu bởi các lớp sản xuất trong thời gian chạy. Theo mặc định, cũng bao gồm các phụ thuộc thời gian biên dịch.
Test Compile- Các phụ thuộc cần thiết để biên dịch nguồn kiểm thử của dự án. Theo mặc định, nó bao gồm các lớp sản xuất đã biên dịch và các phụ thuộc thời gian biên dịch.
Test Runtime- Các phụ thuộc cần thiết để chạy các bài kiểm tra. Theo mặc định, nó bao gồm thời gian chạy và kiểm tra biên dịch phụ thuộc.
Sự phụ thuộc bên ngoài
Phụ thuộc bên ngoài là một trong những loại phụ thuộc. Đây là phần phụ thuộc vào một số tệp được xây dựng bên ngoài trên bản dựng hiện tại và được lưu trữ trong một hệ thống lưu trữ nào đó, chẳng hạn như Maven central, hoặc một kho lưu trữ Maven hoặc lvy của công ty, hoặc một thư mục I của hệ thống tệp cục bộ.
Đoạn mã sau để xác định phần phụ thuộc bên ngoài. Sử dụng mã này trongbuild.gradle tập tin.
dependencies {
compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
}
Một phần phụ thuộc bên ngoài đang khai báo các phần phụ thuộc bên ngoài và biểu mẫu phím tắt trông giống như "nhóm: tên: phiên bản".
Kho lưu trữ
Trong khi thêm các phụ thuộc bên ngoài. Gradle tìm kiếm chúng trong một kho lưu trữ. Kho lưu trữ chỉ là một tập hợp các tệp, được sắp xếp theo nhóm, tên và phiên bản. Theo mặc định, Gradle không xác định bất kỳ kho lưu trữ nào. Chúng ta phải xác định rõ ràng ít nhất một kho lưu trữ. Đoạn mã sau xác định cách xác định kho lưu trữ maven. Sử dụng mã này trongbuild.gradle tập tin.
repositories {
mavenCentral()
}
Mã sau là để xác định maven từ xa. Sử dụng mã này trongbuild.gradle tập tin.
repositories {
maven {
url "http://repo.mycompany.com/maven2"
}
}
Xuất bản đồ tạo tác
Các cấu hình phụ thuộc cũng được sử dụng để xuất bản tệp. Các tệp đã xuất bản này được gọi là hiện vật. Thông thường, chúng tôi sử dụng các trình cắm thêm để xác định các tạo tác. Tuy nhiên, bạn cần cho Gradle biết nơi xuất bản các hiện vật. Bạn có thể đạt được điều này bằng cách đính kèm các kho lưu trữ vào nhiệm vụ tải lên lưu trữ. Hãy xem cú pháp sau để xuất bản kho lưu trữ Maven. Trong khi thực thi, Gradle sẽ tạo và tải lên một Pom.xml theo yêu cầu của dự án. Sử dụng mã này trongbuild.gradle tập tin.
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file://localhost/tmp/myRepo/")
}
}
}