2016-01-03 13 views
10

Ich habe ein Lernprojekt gestartet, um Gradle, Spring und Vaadin kennenzulernen. Bisher habe ich mit Hilfe einiger Spring-Guides erfolgreich grundlegende CRUD-Funktionen erstellt.Ich kann kein Gradle Projekt mit Gradle Support Plugin für NetBeans 8.1 erstellen

Jetzt möchte ich das Projekt in NetBeans importieren. Ich habe die Gradle Support plugin für NetBeans installiert und mein Repository in ein neues NetBeans-Projekt geklont.

Wenn ich versuche, build oder bootRun das Projekt in NetBeans, schlägt es fehl und sagt mir, dass die Hauptklasse nicht gefunden werden kann. Aber wenn ich build oder bootRun direkt von der Befehlszeile mithilfe der Gradle Wrapper ich in das Repository geladen, funktioniert es gut.

Ich studierte jede einzelne Seite der Gradle Support plugin's wiki on GitHub, konnte aber keine relevanten Informationen für mein Problem finden.

Hier ist die Ausgabe erhalte ich beim Versuch, das Projekt in NetBeans über die Projektkontextmenü Aktion Aufgaben ausführen/build/bauen:

Executing: gradle :build 

:compileJava UP-TO-DATE 
:processResources UP-TO-DATE 
:classes UP-TO-DATE 
:findMainClass FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':findMainClass'. 
> Could not find property 'main' on task ':run'. 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Total time: 1.957 secs 



Build failure (see the Notifications window for stacktrace): gradle :build 

ich die erwähnte stacktrace zu Gist eingefügt.

Und hier ist der Ausgang ich für den erfolgreichen Build von der Kommandozeile am selben Projekt ausgeführt erhalten:

$ ./gradlew build 
:compileJava UP-TO-DATE 
:processResources UP-TO-DATE 
:classes UP-TO-DATE 
:findMainClass 
:jar 
:bootRepackage 
:assemble 
:compileTestJava UP-TO-DATE 
:processTestResources UP-TO-DATE 
:testClasses UP-TO-DATE 
:test UP-TO-DATE 
:check UP-TO-DATE 
:build 

BUILD SUCCESSFUL 

Total time: 11.673 secs 

Ich habe wirklich keine Ahnung, wie man damit weitergehen und alle Hinweise sehr schätzen würde und Ich finde es sehr merkwürdig, dass ich verschiedene Ergebnisse erhalte, wenn ich von der Befehlszeile aus laufe und von NetBeans aus. Sollte das NetBeans-Plugin nicht einfach dieselben Befehle aufrufen, die ich direkt in der Befehlszeile verwende und das funktioniert gut?

Antwort

6

Ich habe zwei Möglichkeiten gefunden, das zu beheben.

a) Hinzufügen

if (!hasProperty('mainClass')) { 
    ext.mainClass = 'org.foo.Bar' 
} 

zu build.gradle.

b) Einstellung Optionen/Verschiedenes/Gradle/Taskausführung/Automatische Tasks zu "NetBeans sollte keine Aufgaben automatisch hinzufügen".

von NetBeans erzeugt Dieser Kommentar ich in einer build.gradle Datei gefunden hat mir den entscheidenden Hinweis:

// NetBeans will automatically add "run" and "debug" tasks relying on the 
// "mainClass" property. You may however define the property prior executing 
// tasks by passing a "-PmainClass=<QUALIFIED_CLASS_NAME>" argument. 
// 
// Note however, that you may define your own "run" and "debug" task if you 
// prefer. In this case NetBeans will not add these tasks but you may rely on 
// your own implementation. 
1

Ich habe den gleichen Fehler bei der Verwendung der neuesten Version von Spring-Boot-Gradle-Plugin (1.3.1.RELEASE). Nach dem Downgrade auf 1.2.8.RELEASE ist der Fehler verschwunden.

Es hat in 1.3.x einige Konfigurationsänderungen, siehe unter Gradle Plugin hier: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.3-Release-Notes

Vielleicht Version Auflösung in NetBeans Gradle vs. Kommandozeile unterscheidet. Sie könnten also versuchen, Version 1.2.8 zu spezifizieren, oder die Konfiguration entsprechend den 1.3 Änderungen aktualisieren.

+0

Als ich Version 1.2.8 für das Plugin Frühling Boot-Gradle angeben, erhalte ich ein 'ModelBuildingException' beim Laufen' Gradel. Ich habe auch versucht, 'Build anzupassen.Gradle 'nach dem, was ich in den Versionshinweisen für die Version 1.3 rot, die Sie für einen Link angegeben haben, aber das gleiche Ergebnis wie im ursprünglichen Post beschrieben. – anothernode

Verwandte Themen