2012-11-21 29 views
18

Trong tệp xây dựng gradle, có nhiều cách để chỉ định các mục được thực thi cho một tác vụ cụ thể. phương thức doFirst đặt một mục tác vụ lên trên cùng của ngăn tác vụ, do đó mục đó được thực thi trước phần còn lại của ngăn tác vụ. Điều này rất tiện lợi nếu bạn cần thực hiện một số mục chuẩn bị trước khi thực hiện nhiệm vụ chính. Trong thực tế, nếu bạn gọi doFirst nhiều lần, mục được thêm vào trong cuộc gọi cuối cùng là điều đầu tiên được thực thi.gradle doLast triết lý

Về lý thuyết, doLast phải làm điều gì đó tương tự, nhưng doLast sẽ nhận được gọi là SAU khi việc thực hiện chính của tác vụ hoàn tất. Nhưng, trong gradle 1.2, nếu bạn gọi doLast và sau đó thêm một cái gì đó vào nhiệm vụ chính sau khi doLast trong tệp gradle.build, mục tác vụ chính là mục cuối cùng được gọi. Ví dụ, sau đây gradle build file:

task myTask 

myTask << { 
    println "myTask main execution block" 
} 

myTask.doFirst { 
println "myTask doFirst call one" 
} 

myTask.doFirst { 
    println "myTask doFirst call two" 
} 

myTask.doLast { 
    println "myTask doLast" 
} 

myTask << { 
    println "myTask more main execution block" 
} 

Tạo đầu ra sau đây:

:myTask 
myTask doFirst call two 
myTask doFirst call one 
myTask main execution block 
myTask doLast 
myTask more main execution block 

BUILD SUCCESSFUL 

Total time: 1.585 secs 

Câu hỏi của tôi là thế này: Đó có phải là mục đích của doLast chỉ đơn giản là thêm bước vào phần cuối của nhiệm vụ (như doFirst bắt đầu từ đầu)? Nếu vậy, doLast có vẻ vô nghĩa với ngoại lệ cung cấp tính đối xứng với doFirst. Người dùng chỉ có thể làm myTask < < {...} để nối thêm thứ gì đó vào cuối. Tôi đã nghĩ rằng doLast sẽ đảm bảo rằng mọi mục "doLast" sẽ được thực hiện sau khối thực thi chính.

Đây có phải là cách doLast của gradle được cho là hoạt động hay là lỗi này ?? (hoặc tôi chỉ là ngu ngốc cho phụ thêm một cái gì đó vào khối thực hiện chính sau khi gọi doLast - đó là một sai lầm đơn giản sau khi tacking trong một khối thực hiện).

Trả lời

30

<< là bí danh cho doLast, vì vậy mọi thứ hoạt động như mong đợi ở đây.

Các vấn đề liên quan