2014-05-02 16 views
16

Tôi đã cài đặt plugin hỗ trợ Gradle trong Netbeans và tôi có thể xây dựng và chạy dự án tốt. Khi tôi cố gắng chạy trong chế độ gỡ lỗi, tôi nhận được kết quả như sau:Không thể thực thi tác vụ gỡ lỗi trong NetBeans sau khi chuyển sang Gradle

Executing: gradle debug 

:debug 
Cannot execute debug because the property "mainClass" is not defined or empty. 

BUILD SUCCESSFUL 

Total time: 0.222 secs 

Tôi đang sử dụng:

Oracle Java 1.8 
Gradle 1.12 
Netbeans 8.0 
Gradle-Support 1.3.0 
LinuxMint 16 

Tại sao tôi không thể chạy trình gỡ lỗi của tôi?

+0

Không nên thiếu mainClass được xác định cũng ức chế hoạt động của dự án? – Trilarion

Trả lời

18

Thêm một cái gì đó giống như

if (!hasProperty('mainClass')) { 
    ext.mainClass = 'com.foo.acme.Main' 
} 

để build.gradle của bạn. Nó sẽ cho Gradle biết cần sử dụng lớp nào khi bắt đầu ứng dụng của bạn. Có lẽ điều đó nên được tùy chỉnh trong giao diện người dùng nhưng tôi không thể nhìn thấy nó ngay bây giờ.

+0

Điều này dường như đã khởi chạy ứng dụng nhưng nó không liên kết với các thư viện gốc, gây ra một ngoại lệ. Tôi có cần phải đặt lại java.library.path một lần nữa không? – ZeroDivide

+0

Tôi cho là vậy. Hãy đảm bảo thư mục làm việc là thư mục bạn mong đợi hoặc đặt 'java.library.path' hoặc có thể là' LD_LIBRARY_PATH' env var. Tôi đã không thử nó thư viện bản địa. – Radim

+0

Tôi sẽ đánh dấu đây là câu trả lời, tôi không có cơ hội để kiểm tra nội dung đường dẫn lib ngay bây giờ nhưng điều này đã khắc phục sự cố ban đầu. – ZeroDivide

11

Một giải pháp khác cho vấn đề này là tạo một tác vụ gỡ lỗi mới. Tương tự như các run nhiệm vụ gradle bạn chỉ có thể thêm các nhiệm vụ sau đây để tập build.gradle của bạn:

task debug(dependsOn: classes, type: JavaExec) { 
    main = project.mainClassName 
    classpath = sourceSets.main.runtimeClasspath 
    standardInput = System.in 
    workingDir = project.assetsDir 
    ignoreExitValue = true 
    debug = true 
} 
+0

Điều này đã khắc phục được sự cố cho tôi. Đó là một điều kỳ lạ. Tôi đã chuyển main() Class sub-project sang một dự án gốc khác. Lệnh 'run' vẫn hoạt động.Và 'debug' _stopped_ đang hoạt động. Sau khi xác định 'task debug() ...', rõ ràng vấn đề là 'workingDir' không được đặt ở đúng đường dẫn. Trong khi lệnh 'run {}' đặt đúng 'workingDir'. Cho đến bây giờ, tôi nghĩ rằng việc gỡ lỗi là một lần chạy với cờ 'debug' được đặt thành' true'. Không rõ ràng. – will

5

Ngoài Radim's answer cách để tùy chỉnh mainClass tham số trong giao diện người dùng Netbeans.

enter image description here

Trong các thuộc tính của một dự án gradle Netbeans đi đến "Built-In Nhiệm vụ/Debug", unclick các "Kế thừa" và thêm "-PmainClass = aaa.bbb.ccc" để các đối số.

Tôi đoán điều này cũng nên được thực hiện cho tác vụ chạy.

Cũng giống như ý tưởng chạy/gỡ lỗi tệp đơn mà đã lấy tệp đã chọn làm tham số mainClass.

0

Tôi đã có một similar problem và có thể sửa chữa cài đặt Tùy chọn/Khác biệt/Gradle/Thực thi nhiệm vụ/Các tác vụ tự động thành "NetBeans không nên thêm công việc tự động".

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