it-swarm.com.de

IntelliJ kann aufgrund fehlender Klasse kein Gradle-Projekt ausführen

Ich habe gerade IntelliJ einen Versuch gegeben, weil Eclipse mich wieder genervt hat. Ich habe mein gradle - Projekt (Anlegesteg, Vaadin) importiert und es lief ziemlich reibungslos. Bei dem Versuch, es auszuführen, ist jedoch bei "make" folgende Fehlermeldung aufgetreten:

Fehler: gradle-resources-test: vaadinsharedwidgets: Java.lang.NoClassDefFoundError: org/Apache/tools/ant/util/ReaderInputStream

"vaadinsharedwidgets" ist ein Modul des Projekts. Nach dem, was ich unter dem Fehler verstehe, findet IntelliJ keine Ameise, aber dies ist beabsichtigt, weil ich keine Ameise verwende. Es gehört auch nicht zu den transitiven Abhängigkeiten. Das gleiche Projekt läuft in Eclipse fine und auch in Gradle Works problemlos.

Update: Ich habe gerade Eclipse eingecheckt und irgendwie befindet sich ant.jar auf dem Klassenpfad in Eclipse, aber ich kann es nicht mit einem Projekt verknüpfen. Ich frage mich, wie es dahin gekommen ist.

Update2: Fehlende Versionsinformationen:

  • IntelliJ: v14.0.1 CE (keine Plugins)
  • Grad: 2.2 (verwendet über 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'
}

Das Hinzufügen von ant als zusätzliche Abhängigkeit zum Modul funktioniert nicht.

15
ssindelar

Nach einigem Basteln und Ausprobieren stellte ich fest, dass der folgende Code im vaadin.gradle der Täter war, und entfernte ihn:

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' 
    }
}

Es war Teil eines veralteten Hacks, jetty9 anstelle von jetty8 zu verwenden, das in älteren Versionen des Vaadin-Gradle-Plugins verwendet wurde. Die aktuelle Version verwendet 9.2.2, was in Ordnung zu sein scheint.

2
ssindelar

In einem Java-Projekt mit mehreren Unterprojekten in IntelliJ 14 ist der gleiche Fehler aufgetreten.

Aktualisierung auf 15.0.1, Aktualisieren der Gradle-Projekte über Views → Tool Windows → Gradle in IntelliJ und Neustart behebt das Problem.

10
Matthias Braun

Wählen Sie File → Invalidate Caches / Restart aus dem Menü und wählen Sie Invalidate and Restart. Das hat das Problem für mich behoben.

1
neu242