IntelliJ ne peut pas exécuter le projet Gradle en raison de l’absence de la classe

Je viens d’essayer IntelliJ , car Eclipse m’a encore énervé. J’ai importé mon projet de diplôme (jetée, vaadin) et tout s’est bien passé. Mais lorsque j’ai essayé de l’exécuter, j’ai rencontré le message d’erreur suivant lors de “make”:

Erreur: gradle-resources-test: vaadinsharedwidgets: java.lang.NoClassDefFoundError: org / apache / tools / ant / util / ReaderInputStream

“vaadinsharedwidgets” est un module du projet. D’après ce que j’ai compris de l’erreur, IntelliJ ne trouve pas ant, mais c’est prévu parce que je n’utilise pas ant. Cela ne fait pas non plus partie des dépendances transitives. Le même projet fonctionne dans eclipse fine et est également construit dans des installations de grande qualité sans aucun problème.

Mise à jour: je viens de vérifier dans Eclipse et ant.jar est en quelque sorte sur le chemin d’access aux classes dans Eclipse mais je ne peux pas le lier à un projet. Je me demande comment ça s’est passé là-bas.

Update2: Informations de version manquantes:

  • IntelliJ: v14.0.1 CE (pas de plugins)
  • Gradé: 2.2 (utilisé via wrapper)
  • Java 8 (1.8.0 b05)
  • Vaadin 7.3.4

build.gradle :

 apply from: 'http://nexus/gradle/vaadin.gradle' apply from: 'http://nexus/gradle/java8.gradle' version = '1.1' description = "Gemeinsame Vaadin-Widgets" vaadin.widgetset 'net.xyz.vaadinsharedwidgets.VaadinsharedWidgetsWidgetset' dependencies { comstack project(':ibhtheme') comstack 'com.vaadin:vaadin-server:' + vaadin.version comstack 'com.vaadin:vaadin-client:' + vaadin.version } jar{ // Include source in jar from sourceSets.main.allJava } sourceSets.main.resources.srcDir 'src/main/webapp' 

vaadin.gradle:

 apply from: 'http://plugins.jasoft.fi/vaadin.plugin?version=0.9.2' configurations { def conf = 'vaadin-client' def sources = project.sourceSets.main def testSources = project.sourceSets.test if (!project.configurations.hasProperty(conf)) { project.configurations.create(conf) sources.comstackClasspath += project.configurations[conf] testSources.comstackClasspath += project.configurations[conf] testSources.runtimeClasspath += project.configurations[conf] project.configurations[conf].exclude group: 'org.eclipse.jetty' } } vaadin { version '7.3.4' push true } 

java8.gradle:

 apply plugin: 'java' sourceCompatibility = 1.8 targetCompatibility = 1.8 group = 'net.xyz' dependencies { comstack 'org.slf4j:slf4j-api:1.7.5' comstack 'com.google.guava:guava:16.0.1' comstack 'org.springframework:spring-context:4.0.3.RELEASE' testComstack 'org.testng:testng:6.8.7' testComstack 'org.mockito:mockito-all:1.9.5' testComstack 'org.easytesting:fest-assert-core:2.0M10' testComstack 'org.springframework:spring-test:4.0.3.RELEASE' } 

L’ajout de ant en tant que dépendance supplémentaire au module ne fonctionne pas.

J’ai rencontré la même erreur dans un projet Java avec plusieurs sous-projets dans IntelliJ 14.

La mise à jour vers 15.0.1, l’actualisation des projets Gradle via Views → Tool Windows → Gradle dans IntelliJ et le redémarrage ont corrigé le problème.

Après quelques bricolages et tentatives d’essai et d’erreur, j’ai trouvé que le code suivant dans le fichier vaadin.gradle était le coupable et l’a supprimé:

 configurations { def conf = 'vaadin-client' def sources = project.sourceSets.main def testSources = project.sourceSets.test if (!project.configurations.hasProperty(conf)) { project.configurations.create(conf) sources.comstackClasspath += project.configurations[conf] testSources.comstackClasspath += project.configurations[conf] testSources.runtimeClasspath += project.configurations[conf] project.configurations[conf].exclude group: 'org.eclipse.jetty' } } 

Utiliser jetty9 au lieu de jetty8, qui était utilisé par les anciennes versions du plugin vaadin-gradle, faisait partie d’un hack obsolète. La version actuelle utilise 9.2.2, ce qui semble bien se passer.

Choisissez File → Invalidate Caches / Restart dans le menu, puis sélectionnez Invalidate and Restart . Cela a résolu le problème pour moi.