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 main
méthode. Comment dire au plugin Spring Boot Maven laquelle des classes il doit utiliser comme classe principale?
Réponses:
Ajoutez votre classe de départ dans votre pom:
ou
la source
mvn clean package -Dstart-class=com.foo.Application
si vous voulez spécifier dynamiquement en utilisant quelle classe principalemvn spring-boot:run -Dstart-class=com.foo.Application
. Ceci n'est valable que si vous n'avez pas spécifié la mainClass dans le plugin du pomPour ceux qui utilisent Gradle (au lieu de Maven):
la source
Could not set unknown property 'mainClass' for object of type org.springframework.boot.gradle.dsl.SpringBootExtension
.Si vous n'utilisez PAS le pom spring-boot-starter-parent, puis à partir de la documentation Spring :
la source
Pour ceux qui utilisent Gradle (au lieu de Maven), référençant ici :
la source
Si vous utilisez spring-boot-starter-parent dans votre pom, vous ajoutez simplement ce qui suit à votre pom:
Ensuite, faites votre package mvn.
Consultez cette page de documentation Spring .
Un aspect très important ici est de mentionner que la structure du répertoire doit être src / main / java / nameofyourpackage
la source
J'ai essayé le code suivant dans pom.xml et cela a fonctionné pour moi
la source
Depuis Spring Boot 1.5, vous pouvez ignorer la chaîne littérale sujette aux erreurs dans pom ou build.gradle. L'outil de reconditionnement (via maven ou le plugin gradle) choisira celui annoté
@SpringBootApplication
pour vous. (Reportez-vous à ce numéro pour plus de détails: https://github.com/spring-projects/spring-boot/issues/6496 )la source
J'avais renommé mon projet et il recherchait toujours l'ancienne
Application
classe sur le chemin de construction. Je l'ai supprimé dans le dossier «build» et tout allait bien.la source
J'ai vu ce problème avec Java 1.9 et SpringBoot 1.5.x, lorsque la classe principale n'est pas spécifiée explicitement.
Avec Java 1.8, il est capable de trouver la classe principale sans propriété explicite et 'mvn package' fonctionne très bien.
la source