2014-11-18 5 views
15

ho appena dato IntelliJ una prova, perché Eclipse mi ha infastidito di nuovo. Ho importato il mio progetto gradle (jetty, vaadin) ed è andato tutto liscio. Ma quando ho provato a farlo funzionare ho incontrato il seguente messaggio di errore durante la "fanno":IntelliJ non può eseguire il progetto Gradle a causa di classe mancante

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

"vaadinsharedwidgets" è un modulo del progetto. Da quello che ho capito dall'errore, IntelliJ non trova ant, ma questo è inteso perché non uso ant. Inoltre non fa parte delle dipendenze transitive. Lo stesso progetto funziona in eclisse bene e lo costruisce anche in gradle senza problemi.

Aggiornamento: Ho appena controllato Eclipse e in qualche modo l'ant.jar si trova sul classpath in Eclipse ma non riesco a collegarlo a nessun progetto. Mi chiedo come ci sia arrivato.

Update2: mancante informazioni sulla versione:

  • IntelliJ: v14.0.1 CE (nessun plug-in)
  • Gradle: 2.2 (usato tramite involucro)
  • 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' 
} 

Aggiunta formica come dipendenza aggiuntiva al modulo doesn' lavoro.

+1

Gradle contiene effettivamente Ant per poter riutilizzare le attività Ant esistenti. Non hai incluso la tua versione di gradle o la versione.In realtà non hai incluso nulla al di fuori dell'errore, il che rende difficile aiutare chiunque. – SteveD

+0

Mi dispiace per le informazioni mancanti. Ho aggiunto le versioni pertinenti. – ssindelar

+0

Si prega di includere build.gradle dal modulo vaadinsharedwidgets. – SteveD

risposta

2

Dopo alcuni ritocchi e prova ed errore ho trovato che il seguente codice nel vaadin.gradle era il colpevole e rimosso:

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

Faceva parte di un mod obsoleto da usare al posto di jetty9 jetty8, che era usato da versioni precedenti del plugin vaadin-gradle. La versione corrente utilizza 9.2.2 che sembra andare bene.

10

ho incontrato lo stesso errore in un progetto Java con più sottoprogetti in IntelliJ 14.

Aggiornamento a 15.0.1, l'aggiornamento dei progetti Gradle via in IntelliJ e riavviare risolto il problema.

+1

Intendi 15.0.1? Ad ogni modo, ho ancora il problema. – Joqn

+0

@Joqn: Sì, ho modificato il numero di versione. –

+5

https://youtrack.jetbrains.com/issue/IDEA-147146; File/Invalidate Caches + Restart sembra aiutare. –

1

Scegliere File → Invalidate Caches/Restart dal menu e selezionare Invalidate and Restart. Questo ha risolto il problema per me.

Problemi correlati