2014-05-02 10 views
16

Zainstalowałem wtyczkę Gradle-support w Netbeans i mogę ją zbudować i uruchomić dobrze. Kiedy próbuję uruchomić w trybie debugowania, pojawia się następujący komunikat:Nie można wykonać zadania debugowania w NetBeans po przejściu na Gradle

Executing: gradle debug 

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

BUILD SUCCESSFUL 

Total time: 0.222 secs 

Używam:

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

Dlaczego nie mogę uruchomić mój debugger?

+0

Czy brak zdefiniowanego mainClass również nie powinien wstrzymywać działania projektu? – Trilarion

Odpowiedz

18

Dodaj coś

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

do build.gradle. Pokaże Gradle wtyczkę, jakiej klasy użyć podczas uruchamiania aplikacji. Być może to powinno być możliwe do dostosowania w interfejsie użytkownika, ale nie widzę go teraz.

+0

Wygląda na to, że uruchomiła aplikację, ale nie łączyła się z natywnymi bibliotekami, co powoduje wyjątek. Czy muszę ponownie jawnie ustawić plik java.library.path? – ZeroDivide

+0

Przypuszczam. Upewnij się, że katalog roboczy jest tym, czego oczekujesz, lub ustaw 'java.library.path' lub ewentualnie' LD_LIBRARY_PATH' env var. Nie próbowałem jej natywnych bibliotek. – Radim

+0

Zaznaczę to jako odpowiedź, nie mam teraz okazji sprawdzić rzeczy z biblioteki lib, ale to naprawiło pierwotny problem. – ZeroDivide

11

Kolejnym rozwiązaniem tego problemu jest utworzenie nowego zadania debugowania. Podobne do Gradle run zadania można po prostu dodać następujące zadanie do pliku build.gradle:

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

Naprawiło to problem dla mnie. To dziwna rzecz. Przenieśliłem pod-projekt klasy main() do innego projektu root. Polecenie 'run' nadal działa.I 'debug' _stopped_ working. Po zdefiniowaniu tego 'task debug() ...' jest oczywiste, że problem polegał na tym, że 'workingDir' nie był ustawiony na właściwą ścieżkę. Natomiast zadanie 'run {}' ustawia poprawny 'workingDir'. Do tej pory myślałem, że debugowanie było uruchomione z flagą 'debug' ustawioną na 'true'. Nie, tak widocznie. – will

5

Oprócz Radim's answer drodze dostosować parametr w Netbeans UI mainClass.

enter image description here

W właściwościach Netbeans Gradle projektu przejdź do sekcji „Wbudowane w zadaniach/debug” unclick się „Dziedziczy” i dodać „-PmainClass = aaa.bbb.ccc” na argumenty.

Sądzę, że to powinno być również wykonane dla zadania uruchamiania.

To taki sam pomysł, jak pojedynczy plik run/debug, który już pobiera wybrany plik jako parametr mainClass.

0

miałem similar problem i był w stanie go naprawić ustawienie Execution Options/Różne/Gradle/Zadanie/automatyczne zadania do „NetBeans nie powinien automatycznie dodawać zadania”.

Powiązane problemy