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
Mon projet a plus d’une classe avec une méthode main
. Comment puis-je indiquer au plug-in Spring Boot Maven quelles classes il doit utiliser comme classe principale?
Ajoutez votre classe de départ dans votre pom:
com.mycorp.starter.HelloWorldApplication
Pour ceux qui utilisent Gradle (au lieu de Maven):
springBoot { mainClass = "com.example.Main" }
Si vous n’utilisez PAS le pom spring-boot-starter-parent, alors à partir de la documentation Spring :
org.springframework.boot spring-boot-maven-plugin 1.1.3.RELEASE my.package.MyStartClass ZIP repackage
Si vous utilisez spring-boot-starter-parent dans votre pom, vous ajoutez simplement ce qui suit à votre pom:
org.springframework.boot spring-boot-maven-plugin
Ensuite, faites votre paquet mvn.
Voir cette page de documents de spring .
Un aspect très important ici est de mentionner que la structure du répertoire doit être src / main / java / nameofyourpackage
Pour ceux qui utilisent Gradle (au lieu de Maven), en référence ici :
La classe principale peut également être configurée explicitement à l’aide de la propriété mainClassName de la tâche:
bootJar { mainClassName = 'com.example.ExampleApplication' }
Sinon, le nom de la classe principale peut être configuré à l’échelle du projet à l’aide de la propriété mainClassName du DSL Spring Boot:
springBoot { mainClassName = 'com.example.ExampleApplication' }
J’ai essayé le code suivant dans pom.xml et cela a fonctionné pour moi
org.springframework.boot spring-boot-maven-plugin myPackage.HelloWorld maven-comstackr-plugin true D:\jdk1.8\bin\javaw.exe
J’avais renommé mon projet et il trouvait toujours l’ancienne classe d’ Application
sur le chemin de compilation. Je l’ai enlevé dans le dossier ‘build’ et tout allait bien.
Depuis le Spring Boot 1.5, vous pouvez terminer l’ignorance de la chaîne littérale sujette aux erreurs dans pom ou build.gradle. L’outil de reconditionnement (via plugin maven ou gradle) sélectionnera celui annoté avec @SpringBootApplication
pour vous. (Reportez-vous à ce problème pour plus de détails: https://github.com/spring-projects/spring-boot/issues/6496 )