Récemment, j'ai créé un nouveau projet utilisant IntelliJ IDEA et Gradle pour la gestion des dépendances. Après avoir résolu toutes les dépendances nécessaires au projet et l'avoir exécuté, l'erreur suivante apparaît:
Java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at com.some.fancy.name.Application.main(Application.Java:13)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.Java:147)
Caused by: Java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:381)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:424)
at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:331)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:357)
... 6 more
Le problème ne se produit qu'avec les classes des dépendances résolues (je l'ai essayé aussi avec un simple programme main
utilisant Cache
de Guava). La classe à l'origine de l'erreur est la suivante:
@SpringBootApplication
public class Application {
public static void main(String... args) {
SpringApplication.run(Application.class, args);
}
}
La couleur de tous les champs est correcte (les annotations sont en jaune, rien en rouge), IntelliJ a toutes les dépendances résolues dans le répertoire External Libraries
. J'utilise la flèche verte "lancer" pour lancer le projet.
Lorsque vous utilisez gradle à partir de la ligne de commande, créez un gros pot alors tout fonctionne correctement. J'ai déjà essayé "Invalidate Caches/Restart", extrait le projet plusieurs fois du référentiel, effacé les caches de gradation, supprimé toutes les dépendances à la main, essayé de l'exécuter à l'aide de Community Edition, l'édition ultime, exécutant des projets plus anciens qui fonctionnaient déjà. il y a quelque temps (et ne fonctionne pas maintenant).
Pourrait-il être lié d'une manière ou d'une autre à la mise à jour de IntelliJ IDEA vers 2016.3.4, version 163.12024.16?
C'est un problème connu dans IntelliJ IDEA qui est spécifique à Gradle 3.4 et aux versions ultérieures:
C'est déjà corrigé dans IntelliJ IDEA 2017.1 et 2016.3.6 .
Vous pouvez également utiliser Gradle 3.3 ou une version antérieure comme solution de contournement si vous ne pouvez ou ne souhaitez pas mettre à jour IntelliJ IDEA.
Le réglage de la version de gradle sur 3.3 a corrigé ce problème.