IntelliJ не может запустить проект gradle из-за отсутствия класса

Я просто попробовал IntelliJ, потому что Eclipse снова разозлило меня. Я импортировал проект gradle (причал, ваадин), и он прошел довольно гладко. Но когда я попытался запустить его, во время "make" я обнаружил следующее сообщение об ошибке:

Ошибка: gradle -resources-test: vaadinsharedwidgets: java.lang.NoClassDefFoundError: org/apache/tools/ ant/util/ReaderInputStream

"vaadinsharedwidgets" - это модуль проекта. Из того, что я понимаю из-за ошибки, IntelliJ не находит ant, но это связано с тем, что я не использую ant. Он также не является частью транзитивных зависимостей. Тот же проект работает в режиме eclipse, а также создает его в gradle без проблем.

Обновление: Я только что зарегистрировался в Eclipse, и как-то ant.jar находится в пути к классам в Eclipse, но я не могу связать его с каким-либо проектом. Интересно, как это получилось.

Update2: Отсутствует информация о версии:

  • IntelliJ: v14.0.1 CE (без плагинов)
  • Gradle: 2.2 (используется через обертку)
  • Java 8 (1.8.0 b05)
  • Ваадин 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'
}

Добавление ant в качестве дополнительной зависимости от модуля не работает.

Ответ 1

После некоторых попыток и попыток и ошибок я обнаружил, что следующий код в vaadin.gradle был виновником и удалил его:

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

Это была часть устаревшего взлома, чтобы использовать jetty9 вместо jetty8, который использовался более старыми версиями плагина vaadin gradle. Текущая версия использует 9.2.2, которая кажется прекрасной.

Ответ 2

Я столкнулся с той же ошибкой в ​​проекте Java с несколькими подпроектами в IntelliJ 14.

Обновление до 15.0.1, обновление проектов Gradle через Views → Tool Windows → Gradle в IntelliJ и перезапуск исправления проблемы.

Ответ 3

Выберите File → Invalidate Caches / Restart в меню и выберите Invalidate and Restart. Это исправило проблему для меня.