Execution default of goal
org.springframework.boot:spring-boot-maven-plugin:1.0.1.RELEASE:repackage
failed:
Unable to find a single main class from the following candidates
Mein Projekt hat mehr als eine Klasse mit einer main
Methode. Wie sage ich dem Spring Boot Maven-Plugin, welche der Klassen es als Hauptklasse verwenden soll?
Antworten:
Fügen Sie Ihre Startklasse in Ihren Pom ein:
oder
quelle
mvn clean package -Dstart-class=com.foo.Application
Wenn Sie dynamisch angeben möchten, mit welcher Hauptklassemvn spring-boot:run -Dstart-class=com.foo.Application
. Dies ist nur gültig, wenn Sie die Hauptklasse nicht im Plugin des Poms angegeben habenFür diejenigen, die Gradle (anstelle von Maven) verwenden:
quelle
Could not set unknown property 'mainClass' for object of type org.springframework.boot.gradle.dsl.SpringBootExtension
.Wenn Sie den Spring-Boot-Starter-Parent-Pom NICHT verwenden, lesen Sie die Spring-Dokumentation :
quelle
Für diejenigen, die Gradle (anstelle von Maven) verwenden, wird hier verwiesen :
quelle
Wenn Sie Spring-Boot-Starter-Parent in Ihrem Pom verwenden, fügen Sie Ihrem Pom einfach Folgendes hinzu:
Dann machen Sie Ihr MVN-Paket.
Siehe diese Spring Docs-Seite .
Ein sehr wichtiger Aspekt hierbei ist zu erwähnen, dass die Verzeichnisstruktur src / main / java / nameofyourpackage sein muss
quelle
Ich habe den folgenden Code in pom.xml ausprobiert und es hat bei mir funktioniert
quelle
Seit Spring Boot 1.5 können Sie das fehleranfällige Zeichenfolgenliteral in pom oder build.gradle vollständig ignorieren. Das Repackaging-Tool (über das Maven- oder Gradle-Plugin) wählt das mit Anmerkungen versehene
@SpringBootApplication
für Sie aus. (Weitere Informationen finden Sie in diesem Problem: https://github.com/spring-projects/spring-boot/issues/6496 )quelle
Ich hatte mein Projekt umbenannt und es fand immer noch die alte
Application
Klasse auf dem Erstellungspfad. Ich habe es im 'Build'-Ordner entfernt und alles war in Ordnung.quelle
Habe dieses Problem mit Java 1.9 und SpringBoot 1.5.x gesehen, wenn die Hauptklasse nicht explizit angegeben ist.
Mit Java 1.8 kann es die Hauptklasse ohne explizite Eigenschaft finden und 'mvn package' funktioniert einwandfrei.
quelle