web-dev-qa-db-fra.com

IntelliJ ne peut pas exécuter le projet.

Je viens de donner IntelliJ a essayer, car Eclipse m'a encore énervé. J'ai importé mon gradle projet (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 voulu parce que je n'utilise pas ant. Cela ne fait pas non plus partie des dépendances transitives. Le même projet s’exécute dans Eclipse Fine et le construit également en douceur, sans aucun problème.

Mise à jour: Je viens juste de vérifier Eclipse et ant.jar est sur le chemin de classe 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 {
    compile project(':ibhtheme')
    compile 'com.vaadin:vaadin-server:' + vaadin.version
    compile '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.compileClasspath += project.configurations[conf]
        testSources.compileClasspath += 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 {
    compile 'org.slf4j:slf4j-api:1.7.5'
    compile 'com.google.guava:guava:16.0.1'
    compile 'org.springframework:spring-context:4.0.3.RELEASE'

    testCompile 'org.testng:testng:6.8.7'
    testCompile 'org.mockito:mockito-all:1.9.5'
    testCompile 'org.easytesting:fest-assert-core:2.0M10'
    testCompile 'org.springframework:spring-test:4.0.3.RELEASE'
}

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

15
ssindelar

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 je l’ai 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.compileClasspath += project.configurations[conf]
        testSources.compileClasspath += 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 la version 9.2.2, ce qui semble bien se passer.

2
ssindelar

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.

10
Matthias Braun

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

1
neu242