У меня есть Eclipse Luna и стандартный проект веб-приложений GWT. Я попытался включить обработку аннотаций, чтобы сделать работу Dagger2. Вот мой проект конкретные конфигурации:Eclipse Включение обработки аннотации приводит к ошибкам
После того, как я попал применить Eclipse, показывает мне следующее сообщение об ошибке:
Как решить эту ошибку?
Edit: я создал демонстрационный проект для демонстрации проблемы: https://github.com/confile/GWT-Dagger2-Demo
Я смотрел на pom.xml из dagger2 компилятора и добавил дополнительную зависимость, но до сих пор нет прогресса. Вот что я сделал:
Изменить: Я пытался использовать dagger2 компилятор банку с зависимостями от here:
Когда я GWT компиляции я получаю следующие ошибки:
Compiling module test.GWTT
Tracing compile failure path for type 'test.client.test2.Dagger_MyWidgetGinjector'
[ERROR] Errors in 'file:/Users/mg/Documents/Eclipse/Eclipse-4.4/GWTT/.apt_generated/test/client/test2/Dagger_MyWidgetGinjector.java'
[ERROR] Line 9: No source code is available for type javax.inject.Provider<T>; did you forget to inherit a required module?
Tracing compile failure path for type 'test.client.test2.MyWidgetClientModule$$ProvideSomeServiceFactory'
[ERROR] Errors in 'file:/Users/mg/Documents/Eclipse/Eclipse-4.4/GWTT/.apt_generated/test/client/test2/MyWidgetClientModule$$ProvideSomeServiceFactory.java'
[ERROR] Line 7: No source code is available for type dagger.Factory<T>; did you forget to inherit a required module?
[ERROR] Aborting compile due to errors in some input files
У меня есть следующие библиотеки на моей пути построения Java:
Edit Gradle: Я также попытался активировать обработку аннотации с помощью градиента в eclipse. Вот мой Gradle build.gradle файл:
apply plugin: 'apt'
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'war'
apply plugin: 'gwt'
apply plugin: 'jetty'
sourceCompatibility = 1.7
version = '1.0'
eclipse {
classpath {
downloadSources=true
downloadJavadoc=true
}
}
buildscript {
repositories {
mavenCentral()
jcenter()
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.6'
classpath 'com.jimdo.gradle:gradle-apt-plugin:0.5-SNAPSHOT'
}
}
repositories {
mavenCentral()
maven {
name = "sonatype"
url = "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
apt 'com.google.dagger:dagger-compiler:2.0-SNAPSHOT:jar-with-dependencies'
compile 'com.google.guava:guava:18.0'
compile 'com.google.guava:guava-gwt:18.0'
compile 'javax.inject:javax.inject:1'
compile 'com.google.dagger:dagger:2.0-SNAPSHOT'
}
gwt {
gwtVersion='2.7.0'
logLevel = 'INFO'
minHeapSize = "512M";
maxHeapSize = "1024M";
compiler {
strict = true;
}
modules 'test.GWTT'
}
tasks.withType(de.richsource.gradle.plugins.gwt.AbstractGwtActionTask) {
args '-XjsInteropMode', 'JS'
}
После `Gradle build``I получить:
/Users/mg/Documents/Grails/GGTS3.6.2/TestGradle2/src/main/java/test/client/GWTT.java:16: error: cannot find symbol
MyWidgetGinjector injector = Dagger_MyWidgetGinjector.create();
^
symbol: variable Dagger_MyWidgetGinjector
Я могу видеть, что Dagger_MyWidgetGinjector.java
был создан в build/source/apt/test/client/test2/
. Мне все еще нужно выяснить, как я могу добавить вновь созданный источник, чтобы eclipse нашел его с использованием зависимостей обновления?
Я добавил много зависимостей от компилятора dagger2 pom.xml, но все же у меня такая же ошибка. – confile
Лучше ли использовать maven для запуска? – confile
На самом деле, есть компилятор с кинжалом-компилятором «jar-with-dependencies», который вы можете использовать (и вам не потребуется никакой другой JAR на заводском пути).Если вы все еще видите ошибку, посмотрите на «представление ошибки» в Eclipse, чтобы (попытаться) получить более подробную информацию об ошибках. –