Dagger2 및 MVP를 프로젝트 거치대에서 사용하지만 Android가 없으면 기본 Java로 사용하고 싶습니다. 하지만 프로젝트를 만들 수 없으며 클래스 DaggerAppComponent가 생성되지 않습니다. 이 클래스는 컴파일 타임에 Dagger lib에 의해 자동 생성됩니다.Android없이 Dagger2 사용
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' 유형이 비 안드로이드 프로젝트에 적합하다는 것을 확신하지 못한다. – yegodm
어떤 클래스입니까? 문제는 DaggeAppComponent 클래스를 생성 할 수 없다는 것입니다. 생각해보기 –