Hallo Freunde Ich entwickle ein Spring Boot Maven-basierte Projekt und und ich habe eine Maven-Submodule erstellt, aber wenn ich versuche, mein Projekt auszuführen, gibt es einen Fehler
%Vor%mein Elternteil Pom und Kind Pom ist
%Vor%und Chile Pom ist
%Vor%Ich habe gegoogelt aber keine Lösung gefunden bitte helfe diesbezüglich!
Ich glaube, das Problem, das ich hatte, ist ähnlich wie bei Ihnen. Ich habe eine Multi-Modul-App mit Spring Boot und nur eine Application.java (mit Hauptmethode).
Ich habe damit gekämpft, dass ich versucht habe, es mit Maven zu starten, und ich habe das gleiche Ergebnis wie Ihr erhalten (Es konnte keine passende Hauptklasse gefunden werden).
Ich habe mehrere Stunden damit verbracht, Dinge zu testen und zu ändern, und nachdem ich die Eigenschaft mainClass dem Pom hinzugefügt hatte, konnte sie es nicht finden.
Dann habe ich beschlossen, das Projekt nicht vom Stammprojekt, sondern von dem Projekt auszuführen, in dem sich die Klasse Application befindet.
Dadurch konnte ich den Spring Boot starten und alles funktioniert wie ein Zauber.
------- hinzugefügt am 2017/08/09
Wenn Sie das gesamte auszuführende Objekt mit java -jar file
packen möchten, können Sie den folgenden Befehl vom Stammprojekt ausführen:
Vergessen Sie nicht, das Spring-Boot-Maven-Plugin zu Ihrem Pom hinzuzufügen.
Entfernen Sie den Maven-Build-Plugin-Code aus dem Eltern-Pom, der dem Folgenden ähnelt, der folgende Snippet sollte nur im Untermodul Pom sein, wo Sie Hauptklasse für Spring-Boot-Anwendung haben:
%Vor%Haben Sie eine Klasse in Ihrer App mit einer Hauptmethode wie:
%Vor%Oder haben Sie sogar mehrere Klassen mit Hauptmethoden, in welchem Fall Spring nicht herausfinden kann, welche zu verwenden?
Wenn du IntellJ IDEA
benutzt, kannst du es vielleicht so machen:
Das hat meinen Fehler gelöst.
Sie können das Problem beheben, indem Sie den Speicherort von main wie folgt angeben:
%Vor% Wenn Sie versuchen, eine mvn spring-boot:run
oder nur eine mvn
(wie Sie JHipster zu verwenden scheinen und so verketten sie als Standardziel) im root Ihres Projekts zu verwenden, ist es normal, dass if schade, dass ich denke, dass es nur in einem einfachen Springboot-Projekt verwendet werden kann.
Da Ihr Elternprojekt mehrere Spring-Boot-Webapps zu haben scheint, nehme ich an, dass jeder seine eigene main () Startklasse hat und dass Sie nur einen Elternpom verwenden, um Ihre Poms zu faktorisieren und all Ihre Pakete zu paketieren Anwendungen einzeln über einen einzigen Befehl.
Führen Sie in diesem Fall einfach eine mvn package
und keine mvn
noch eine mvn spring-boot:run
.
Die Lösung ist die pom.xml-Datei
ändernvon diesem
%Vor%zu diesem
%Vor%oder ein anderer Wert, den Sie abhängig von Ihrer Bereitstellungsmethode benötigen.