web-dev-qa-db-fra.com

Impossible de trouver la classe principale: bootRepackage

J'ai un problème avec ma version Gradle. J'utilise la norme proposée par le site Web de Spring ( https://spring.io/guides/gs/rest-service/ ), mais lorsque j'essaie d'utiliser la construction gradle, j'ai eu cette erreur:

My gradle problem

Ça ne marche pas pour ce diplômé, mais quand j'en utilise un autre (que j'ai pris quand j'étais à l'école) ça marche parfaitement.

31
mfrachet

Il y a deux possibilités

  1. Votre répertoire source n'est pas au bon endroit (utilisez la directive sourceSets pour résoudre ce problème. Votre répertoire source devrait ressembler à quelque chose comme src/main/Java/your/package)
  2. Ajoutez ceci pour indiquer où se trouve votre classe principale

    springBoot { mainClass = "hello.FileUploader" }

Je suis sûr que c'est 1.

32
Pradeep

J'ai aussi ce problème, ici j'ai résolu le problème:

utilisation org.springframework.boot:spring-boot-starter au lieu de org.springframework.boot:spring-boot-starter-web, si votre projet n'est qu'un module qui sera utilisé dans un autre projet.

Ou définissez la classe principale en gradle:

mainClassName = 'your.package.MainClass'

Ou désactivez simplement le bootRepackage

bootRepackage {
    enabled = false
}
23
Bruce

Il n'y a pas de méthode principale dans votre projet (sinon le plugin en trouverait une). Une méthode principale a une signature très spécifique, alors vérifiez que vous avez public static void main(String[] args).

7
Dave Syer

Si la classe principale n'est pas définie dans le projet en cours auquel appartient le fichier build.gradle, mais que vous souhaitez le lancer dans un certain but, comme le test d'intégration de sprint. Fais-le comme ça:

Ajouter

bootRepackage {
    mainClass = 'your.app.package.Application'
}

dans build.gradle (après la ligne, appliquez le plugin: 'spring-boot', car le plugin doit être chargé) résoudre le problème.

6
Richard

Je sais que c'est un très vieux poste. Mais je suis tombé sur ce problème en essayant de construire ma première application Spring-Boot ( https://spring.io/guides/gs/spring-boot/#scratch ). L'emplacement du fichier pom.xml mentionné dans le didacticiel est donc incorrect. Vous devez le placer en dehors de votre dossier src. Voici donc la structure finale du répertoire - /workspace/src/main/Java/hello/HelloController.Java /workspace/src/main/Java/hello/Application.Java /workspace/pom.xml

2
Pramit Sinha

Cela m'est aussi arrivé.

J'ai été confus par l'emplacement de build.gradle fichier: je pensais qu'il devrait se trouver dans src/main/Java/hello, car il est mentionné juste après l'instruction pour créer cette structure de sous-répertoires.

Il doit être placé dans le dossier racine contenant le dossier src. Une fois que j'ai fait ça et appelé "gradle build "du dossier racine et non" ./gradlew build "selon les instructions du guide, la construction a réussi.

Je n'ai pas effectué l'installation standard pour gradle, je viens de télécharger les binaires, c'est peut-être la raison pour laquelle "./gradlew build "a échoué pour moi.

1
Gidi

Je l'ai résolu en spécifiant l'encodage. C'est probablement parce que j'ai écrit le code dans un IDE.

Java -Dfile.encoding=UTF-8 -jar build <filename>.jar
1
surga