我想在項目Gradle中使用Dagger2和MVP,但不使用Android,使用本地Java。 但我無法構建我的項目,DaggerAppComponent類永遠不會生成。 這個類是由Dagger lib在編譯時自動生成的。使用Dagger2而不使用Android
的build.gradle:
plugins {
id "net.ltgt.apt" version "0.11"
}
apply plugin: 'java'
apply plugin: 'idea'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
compileJava {
options.annotationProcessorPath = configurations.apt
}
configurations {
apt
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile "com.google.dagger:dagger:2.11"
apt "com.google.dagger:dagger-compiler:2.11"
apt "com.google.dagger:dagger-producers:2.11"
compileOnly "com.google.auto.factory:auto-factory:1.0-beta3"
apt "com.google.auto.factory:auto-factory:1.0-beta3"
compileOnly "org.immutables:value:2.2.10:annotations"
apt "org.immutables:value:2.2.10"
provided 'javax.annotation:jsr250-api:1.0'
compile 'org.glassfish:javax.annotation:10.0-b28'
}
Main.java
public class Main {
private static AppComponent appComponent;
public static void main(String[] args) {
/**
* Launch the application.
*/
EventQueue.invokeLater(new Runnable() {
public void run() {
appComponent = initDagger();
try {
MainViewImpl mainView = new MainViewImpl();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public AppComponent getAppComponent() {
return appComponent;
}
public static AppComponent initDagger() {
return DaggerAppComponent.builder().appModule(new AppModule())
.build();
}
}
當我建立我的項目,我有這樣的錯誤:
Error:(38, 16) java: cannot find symbol
symbol: variable DaggerAppComponent
location: class main.Main
類DaggerAppComponent永遠不會建立。 你有想法嗎?
你有沒有''導入''班? – f1sh
匕首編譯器依賴範圍不應該是「compileOnly」嗎?我甚至不確定'apt'類型適用於非android項目。 – yegodm
哪些類? 問題是我無法生成類DaggeAppComponent。 認爲 –