2015-02-10 25 views
28

Có công cụ nào cho phép tôi đặt các điểm ngắt trong tệp build.gradle và thực hiện từng bước trong một trình gỡ lỗi không? Lưu ý: Tôi tin rằng tôi đang đặt một câu hỏi khác với các câu hỏi về stackoverflow tương tự về việc gỡ lỗi bổ sung Gradle, ở đâu (có lẽ) mục đích là bước qua mã Groovy hoặc Java tùy chỉnh nằm trong một tệp riêng biệt. Tôi muốn thiết lập một breakpoint trong một nhiệm vụ Gradle trong một file build.gradle đơn giản, giống như ...Làm cách nào để gỡ lỗi tệp build.gradle Gradle (trong trình gỡ rối, có điểm ngắt)?

task example { 
    println "I want to set a breakpoint here" 
} 

... để khi tôi chạy gradle example tôi có thể kiểm tra bối cảnh trong một trình gỡ lỗi.

(Đối với những người sẽ chỉ cho tôi IntelliJ ... mặc dù trang web JetBrains quảng cáo rằng họ hỗ trợ gỡ lỗi tập lệnh Gradle trong IDEA UI, AFAICT điều này là không đúng sự thật, vì điều này đã được báo cáo trong IDEA13 EAP và chưa được sửa Trong IDEA14, hãy xem Debugging Gradle build files in Intellij/Android Studio)

Có công cụ gỡ lỗi nào cho phép tôi đặt điểm ngắt trong tệp build.gradle hay không. Có gì đó về DSL Gradle khiến cơ bản không thể đặt điểm ngắt trong công việc như ví dụ của tôi ở trên?

+1

tôi nghi ngờ bạn có thể gỡ lỗi từ studio android nhưng bạn có thể gọi println và xem phần tin nhắn cho báo cáo. – j2emanue

Trả lời

8

Personnaly Tôi làm điều này khi tôi cần phải gỡ lỗi xây dựng các kịch bản:

Bên trong, bạn terminal làm

export GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" 

Sau đó chạy xây dựng của bạn

gradle clean install 

Cuối cùng đặt một số breakpoint và khởi động điều khiển từ xa gỡ lỗi cấu hình bên trong IDE của bạn trên cổng 5005 và bạn tốt để đi!

+0

android studio giữ cho tôi biết lỗi sau khi tôi thử điều này: Không thể mở cổng trình gỡ lỗi (localhost: 5005): java.net.ConnectException "Kết nối bị từ chối" – j2emanue

+0

khi bạn chạy gradle sạch cài đặt không xây dựng dừng lại trên "Nghe cho dt_socket vận chuyển tại địa chỉ: 5005" –

+1

OP hỏi "Có bất kỳ công cụ gỡ lỗi cho phép tôi thiết lập một breakpoint trong build.gradle tập tin ", vì vậy bạn có thể mở rộng trên" đặt một số điểm ngắt "? – Noumenon

8

có cách dễ dàng hơn:

chỉ cần thêm vào dòng COMAND của bạn -Dorg.gradle.debug = true

ví dụ: gradle nameOfTask -Dorg.gradle.debug=true

thì bạn nên bắt đầu IDE của bạn và chạy gỡ lỗi từ xa với localhost port 5005, tất cả.

Gradle đang chờ bạn, bởi vì tùy chọn máy chủ tiêu chuẩn = y

org.gradle.debug

Khi thiết lập là true, Gradle sẽ chạy build với gỡ lỗi từ xa được kích hoạt, lắng nghe trên cổng 5005 Lưu ý rằng điều này tương đương với việc thêm -agentlib: jdwp = transport = dt_socket, máy chủ = y, suspend = y, address = 5005 vào dòng lệnh JVM và sẽ tạm ngưng máy ảo cho đến khi một trình gỡ lỗi được đính kèm.

Link to docs

+0

Tài liệu tại https://docs.gradle.org/current/userguide/build_environment.html và mã tại https://github.com/gradle/ gradle/blob/master/subprojects/core/src/main/java/org/gradle/process/internal/JvmOptions.java # L143 gợi ý rằng có, điều này về cơ bản là tương đương với câu trả lời được cung cấp bởi @ baptiste-mesta. – Mickalot

+0

Trình xây dựng gradle của tôi không dừng lại và chờ trình gỡ lỗi được đính kèm? – themathmagician

+0

gradle nên dừng lại và chờ cho trình gỡ lỗi, bạn có thể chỉ cho tôi cmd? – user1722245

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