2014-11-29 18 views
8

Sztylet jest reklamowany jako "Szybka wtyczka zależności dla Androida i Java". Ale nie jestem w stanie uruchomić go bez "androidowej" wtyczki Gradle.Jak używać Daggera w aplikacji Java Gradle bez Androida?

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

Nie ma provided w 'Java' lub wtyczki 'aplikacja' Gradle używam. Jest nawet wspomniany w this bug report.

Użycie go jako 'kompilacji' nie przynosi rezultatów. Ten sam java.lang.IllegalStateException: Module adapter for class ... could not be loaded. jest wyrzucany.

W jaki sposób gradować za pomocą "java" i "aplikacji" można skonfigurować tak, aby używały procesora adnotacji sztyletu?

+0

działa dobrze dla mnie z tymi zależnościami 'compile' i' java Wtyczki 'i' application'. Klasy adapterów są generowane automatycznie przez procesor adnotacji, bez żadnej dalszej konfiguracji. Testowane przy pomocy Gradle 2.2. –

Odpowiedz

4

Powinno działać poprawnie z obydwoma określonymi jako compile. Ten błąd oznacza inny problem z Twoim kodem.

Jeśli nadal chcesz korzystać z przewidzianego zakresu proszę przeczytać: http://www.sinking.in/blog/provided-scope-in-gradle/

krótki przykład jak używać pod warunkiem:

apply plugin: 'java' 

configurations { 
    provided 
} 

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

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

Jesteś righ. Problem polegał na tym, że używałem domyślnego "uruchomienia" Intelli IDEA, które NIE nazywa się "kompilacją", więc nic nie zostało wygenerowane. – atok

Powiązane problemy