Gradle - Chạy công trình

Gradle cung cấp một dòng lệnh để thực thi tập lệnh xây dựng. Nó có thể thực hiện nhiều hơn một tác vụ cùng một lúc. Chương này giải thích cách thực thi nhiều tác vụ bằng các tùy chọn khác nhau.

Thực hiện nhiều nhiệm vụ

Bạn có thể thực thi nhiều tác vụ từ một tệp bản dựng duy nhất. Gradle có thể xử lý tệp xây dựng đó bằng cách sử dụnggradle command. Lệnh này sẽ biên dịch từng tác vụ theo thứ tự mà chúng được liệt kê và thực thi từng tác vụ cùng với các phụ thuộc bằng cách sử dụng các tùy chọn khác nhau.

Example- Có bốn nhiệm vụ - task1, task2, task3 và task4. Nhiệm vụ 3 và nhiệm vụ 4 phụ thuộc vào nhiệm vụ 1 và nhiệm vụ2. Hãy xem sơ đồ sau.

Trong 4 nhiệm vụ trên là phụ thuộc vào nhau được biểu diễn bằng biểu tượng mũi tên. Hãy xem mã sau đây. Sao chép có thể dán nó vàobuild.gradle tập tin.

task task1 << {
   println 'compiling source'
}

task task2(dependsOn: task1) << {
   println 'compiling unit tests'
}

task task3(dependsOn: [task1, task2]) << {
   println 'running unit tests'
}

task task4(dependsOn: [task1, task3]) << {
   println 'building the distribution'
}

Bạn có thể sử dụng mã sau để biên dịch và thực hiện tác vụ trên.

C:\> gradle task4 test

Đầu ra:

:task1
compiling source
:task2
compiling unit tests
:task3
running unit tests
:task4
building the distribution

BUILD SUCCESSFUL

Total time: 1 secs

Loại trừ Nhiệm vụ

Trong khi loại trừ một nhiệm vụ khỏi quá trình thực thi, bạn có thể sử dụng tùy chọn –x cùng với lệnh gradle và đề cập đến tên của nhiệm vụ mà bạn muốn loại trừ.

Sử dụng lệnh sau để loại trừ task4 khỏi tập lệnh trên.

C:\> gradle task4 -x test

Đầu ra:

:task1
compiling source
:task4
building the distribution

BUILD SUCCESSFUL

Total time: 1 secs

Tiếp tục xây dựng khi xảy ra lỗi

Gradle sẽ hủy bỏ việc thực thi và không xây dựng được ngay khi bất kỳ tác vụ nào không thành công. Bạn có thể tiếp tục thực hiện ngay cả khi xảy ra lỗi. Đối với điều này, bạn phải sử dụng tùy chọn –continue với lệnh gradle. Nó xử lý từng nhiệm vụ riêng biệt cùng với sự phụ thuộc của chúng. Và điểm quan trọng chính là nó sẽ bắt từng lỗi gặp phải và báo cáo khi kết thúc quá trình xây dựng. Giả sử nếu một tác vụ không thành công thì các tác vụ phụ thuộc tiếp theo cũng sẽ không được thực thi.

Chọn bản dựng nào để thực thi

Khi bạn chạy lệnh gradle, nó sẽ tìm kiếm một tệp xây dựng trong thư mục hiện tại. Bạn có thể sử dụng tùy chọn –b để chọn một tệp xây dựng cụ thể cùng với đường dẫn tuyệt đối. Ví dụ sau chọn một dự án xin chào từmyproject.gradle tập tin nằm trong subdir/ hãy nhìn vào nó.

task hello << {
   println "using build file '$buildFile.name' in '$buildFile.parentFile.name'."
}

Bạn có thể sử dụng lệnh sau để thực thi tập lệnh trên.

C:\> gradle -q -b subdir/myproject.gradle hello

Đầu ra:

using build file 'myproject.gradle' in 'subdir'.

Lấy thông tin bản dựng

Gradle cung cấp một số tác vụ tích hợp để lấy thông tin chi tiết về nhiệm vụ và dự án. Điều này có thể hữu ích để hiểu cấu trúc và các phụ thuộc của bản dựng của bạn và để gỡ lỗi các vấn đề. Bạn có thể sử dụng plugin báo cáo dự án để thêm các nhiệm vụ vào dự án của mình, sẽ tạo ra các báo cáo này.

Danh sách dự án

Bạn có thể liệt kê hệ thống phân cấp dự án của dự án đã chọn và các dự án con của chúng bằng cách sử dụng gradle –q projectschỉ huy. Đây là ví dụ, sử dụng lệnh sau để liệt kê tất cả dự án trong tệp xây dựng.

C:\> gradle -q projects

Đầu ra:

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'projectReports'
+--- Project ':api' - The shared API for the application
\--- Project ':webapp' - The Web application implementation

To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :api:tasks

Báo cáo hiển thị mô tả của từng dự án nếu được chỉ định. Bạn có thể sử dụng lệnh sau để chỉ định mô tả. Dán nó vàobuild.gradle tập tin.

description = 'The shared API for the application'

Nhiệm vụ liệt kê

Bạn có thể liệt kê tất cả các nhiệm vụ thuộc về nhiều dự án bằng cách sử dụng lệnh sau.

C:\> gradle -q tasks

Đầu ra:

------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------

Default tasks: dists

Build tasks
-----------
clean - Deletes the build directory (build)
dists - Builds the distribution
libs - Builds the JAR

Build Setup tasks
-----------------
init - Initializes a new Gradle build. [incubating]
wrapper - Generates Gradle wrapper files. [incubating]

Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root project 'projectReports'.
components - Displays the components produced by root project 'projectReports'. [incubating]
dependencies - Displays all dependencies declared in root project 'projectReports'.
dependencyInsight - Displays the insight into a specific dependency in root project 'projectReports'.
help - Displays a help message.
model - Displays the configuration model of root project 'projectReports'. [incubating]
projects - Displays the sub-projects of root project 'projectReports'.
properties - Displays the properties of root project 'projectReports'.
tasks - Displays the tasks runnable from root project 'projectReports' 
   (some of the displayed tasks may belong to subprojects).

To see all tasks and more detail, run gradle tasks --all

To see more detail about a task, run gradle help --task <task>

Bạn có thể sử dụng lệnh sau để hiển thị thông tin của tất cả các tác vụ.

C:\> gradle -q tasks --all

Đầu ra:

------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------

Default tasks: dists

Build tasks
-----------
clean - Deletes the build directory (build)
api:clean - Deletes the build directory (build)
webapp:clean - Deletes the build directory (build)
dists - Builds the distribution [api:libs, webapp:libs]
   docs - Builds the documentation
api:libs - Builds the JAR
   api:compile - Compiles the source files
webapp:libs - Builds the JAR [api:libs]
   webapp:compile - Compiles the source files

Build Setup tasks
-----------------
init - Initializes a new Gradle build. [incubating]
wrapper - Generates Gradle wrapper files. [incubating]

Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root project 'projectReports'.
api:buildEnvironment - Displays all buildscript dependencies declared in project ':api'.
webapp:buildEnvironment - Displays all buildscript dependencies declared in project ':webapp'.
components - Displays the components produced by root project 'projectReports'. [incubating]
api:components - Displays the components produced by project ':api'. [incubating]
webapp:components - Displays the components produced by project ':webapp'. [incubating]
dependencies - Displays all dependencies declared in root project 'projectReports'.
api:dependencies - Displays all dependencies declared in project ':api'.
webapp:dependencies - Displays all dependencies declared in project ':webapp'.
dependencyInsight - Displays the insight into a specific dependency in root project 'projectReports'.
api:dependencyInsight - Displays the insight into a specific dependency in project ':api'.
webapp:dependencyInsight - Displays the insight into a specific dependency in project ':webapp'.
help - Displays a help message.
api:help - Displays a help message.
webapp:help - Displays a help message.
model - Displays the configuration model of root project 'projectReports'. [incubating]
api:model - Displays the configuration model of project ':api'. [incubating]
webapp:model - Displays the configuration model of project ':webapp'. [incubating]
projects - Displays the sub-projects of root project 'projectReports'.
api:projects - Displays the sub-projects of project ':api'.
webapp:projects - Displays the sub-projects of project ':webapp'.
properties - Displays the properties of root project 'projectReports'.
api:properties - Displays the properties of project ':api'.
webapp:properties - Displays the properties of project ':webapp'.
tasks - Displays the tasks runnable from root project 'projectReports' 
   (some of the displayed tasks may belong to subprojects).
api:tasks - Displays the tasks runnable from project ':api'.
webapp:tasks - Displays the tasks runnable from project ':webapp'.

Dưới đây là một số danh sách các lệnh trong một bảng mô tả các tùy chọn khác nhau.

Sr không. Chỉ huy Sự miêu tả
1 gradle –q help –task <tên nhiệm vụ> Cung cấp thông tin sử dụng (chẳng hạn như đường dẫn, loại, mô tả, nhóm) về một nhiệm vụ cụ thể hoặc nhiều tác vụ.
2 phụ thuộc gradle –q Cung cấp danh sách các phụ thuộc của dự án đã chọn.
3 gradle -q api: phụ thuộc - cấu hình <tên tác vụ> Cung cấp danh sách các phụ thuộc hạn chế tương ứng với cấu hình.
4 gradle –q buildEnosystem Cung cấp danh sách phụ thuộc tập lệnh xây dựng.
5 gradle –q phụ thuộcInsight Cung cấp cái nhìn sâu sắc về một sự phụ thuộc cụ thể.
6 Thuộc tính Gradle –q Cung cấp danh sách các thuộc tính của dự án đã chọn.