2014-11-29 11 views
8

Il pugnale è pubblicizzato come "Un iniettore a dipendenza rapida per Android e Java". Ma non sono in grado di farlo funzionare senza il plugin 'android' di Gradle.Come utilizzare Dagger in un'applicazione Java Gradle non Android?

compile 'com.squareup.dagger:dagger:1.2.1' 
provided 'com.squareup.dagger:dagger-compiler:1.2.1' 

Non c'è provided in 'java' o plugin 'applicazione' Gradle sto usando. È anche menzionato in this bug report.

Fare in modo che sia 'compilazione' non produce risultati. Lo stesso java.lang.IllegalStateException: Module adapter for class ... could not be loaded. viene lanciato.

Come si può configurare il gradle con 'java' e 'application' per utilizzare il processore di annotazione dagger?

+0

funziona bene per me con questi due 'dipendenze compile' e il' java 'e' plugin dell'applicazione '. Le classi dell'adattatore vengono generate automaticamente dal processore di annotazione, senza ulteriori configurazioni. Testato con Gradle 2.2. –

risposta

4

Dovrebbe funzionare correttamente con entrambi definito come compile. L'errore indica altri problemi con il tuo codice.

Se si desidera continuare a utilizzare fornito scopo si prega di leggere questo: http://www.sinking.in/blog/provided-scope-in-gradle/

esempio rapido come utilizzare a condizione che:

apply plugin: 'java' 

configurations { 
    provided 
} 

sourceSets { 
    main { 
     compileClasspath += configurations.provided 
    } 
} 

dependencies { 
    provided 'com.google.guava:guava:18.0' 
} 
+0

Sei giusto. Il problema era che stavo usando "ID" predefinito Intellij IDEA che NON sta chiamando 'build' per il gradle così niente è stato generato. – atok

Problemi correlati