Gradle sẽ thực hiện tất cả các tác vụ không được khai báo với <<
trong giai đoạn cấu hình. Nếu bạn muốn trì hoãn việc thực hiện một nhiệm vụ cho đến giai đoạn thi công sau đó bạn chỉ có thể thêm <<
Trong bạn build.gradle
task helloConfiguration { task ->
println "Hello configuration phase task! $task.name"
}
/* Notice the `<<` this denotes to gradle to not execute
* the closure during the configuration phase. Instead
* delay closure's execution till the execution phase.
*/
task helloExecution << { task ->
println "Hello execution phase task! $task.name"
}
helloExecution.dependsOn helloConfiguration
Sau đó, khi thực hiện các nhiệm vụ helloExecution
chúng ta thấy cả hai chạy, trật tự đảm bảo. Tiếp theo nếu chúng ta chỉ muốn chạy các nhiệm vụ cấu hình xây dựng, chúng ta có thể làm điều đó một cách riêng biệt nếu chúng ta muốn và chỉ chạy một tác vụ duy nhất.
$ gradle helloExecution
Hello configuration phase task! helloConfiguration
Hello execution phase task! helloExecution
:helloConfiguration UP-TO-DATE
:helloExecution UP-TO-DATE
BUILD SUCCESSFUL
Total time: 0.64 secs
$ gradle helloConfiguration
Hello configuration phase task! helloConfiguration
:helloConfiguration UP-TO-DATE
BUILD SUCCESSFUL
Total time: 0.784 secs
Nhiệm vụ chạy trong giai đoạn cấu hình sẽ luôn được thực thi ngay cả khi không có tác vụ được cung cấp, đó là hành vi tôi mong đợi bạn thấy. Vì vậy, cho ví dụ trên. Lưu ý rằng tác vụ cấu hình đã chạy nhưng không chạy được.
$ gradle
Hello configuration phase task! helloConfiguration
:help
Welcome to Gradle 2.10.
To run a build, run gradle <task> ...
To see a list of available tasks, run gradle tasks
To see a list of command-line options, run gradle --help
To see more detail about a task, run gradle help --task <task>
BUILD SUCCESSFUL
Total time: 0.651 secs
Vì vậy, nếu bạn có 5 nhiệm vụ chạy trong giai đoạn cấu hình thì bạn sẽ thấy tất cả chúng thực thi, bất kể tác vụ mà dòng lệnh args đã cố gắng gọi cho mục tiêu của giai đoạn thực hiện.
tôi muốn chạy tác vụ không phụ thuộc vào bất kỳ tác vụ mặc định nào. Chỉ muốn chạy một nhiệm vụ cụ thể, không phải là có thể? –
Nếu bạn biết những nhiệm vụ nào bạn muốn loại bỏ, bạn có thể chỉ định chúng rõ ràng trong dòng lệnh 'gradle myTask -x someTaskThatShouldNotRun' – JBirdVegas
Thật không may, những câu trả lời này không giải quyết được câu hỏi. – JoshuaTree