Dagger 2.0 — AppEngine — конфигурация градиента

Я пытаюсь перейти с Dagger 1.2.2 на Dagger 2.0.1 в проекте AppEngine (НЕ Android).

С Dagger 1.2.2 все просто:

compile 'com.squareup.dagger:dagger-compiler:1.2.2'
compile 'com.squareup.dagger:dagger:1.2.2'

сделал трюк.

С Кинжалом 2.0.1:

compile 'com.google.dagger:dagger-compiler:2.0.1'
compile 'com.google.dagger:dagger:2.0.1'

не работает (исходник генерируется, но перепутан с файлами *.class в build/classes/main/..package../).


person gswierczynski    schedule 18.09.2015    source источник


Ответы (2)


Вы также можете сделать это без плагина net.ltgt.apt (который, кстати, может конфликтовать с ломбоком).

apply plugin: 'java'
apply plugin: 'idea'

def generatedMain = new File(buildDir, "generated/main")

compileJava {
    doFirst {
        generatedMain.mkdirs()
    }
    options.compilerArgs += ['-s', generatedMain]
}
idea.module.sourceDirs += generatedMain

dependencies {
    compileOnly 'com.google.dagger:dagger-compiler:2.8'
    compile 'com.google.dagger:dagger:2.8'
}
person Tomasz Gawel    schedule 23.01.2017

Я нашел решение.

https://github.com/tbroyer/gradle-apt-plugin

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "net.ltgt.gradle:gradle-apt-plugin:0.3"
  }
}

apply plugin: "net.ltgt.apt"

dependecies {
  apt 'com.google.dagger:dagger-compiler:2.0.1'
  compile 'com.google.dagger:dagger:2.0.1'
}

Кроме того, если вы используете Intellij, рекомендуется следующая конфигурация:

Однако при использовании интеграции Gradle в IntelliJ IDEA, а не задачи идеи, вам придется вручную включить обработку аннотаций: в настройках… → Сборка, выполнение, развертывание → Компилятор → Процессоры аннотаций установите флажок Включить обработку аннотаций и Получить процессоры из проекта. путь к классам. Чтобы имитировать поведение Gradle и поведение сгенерированных файлов, вы можете настроить каталоги производственных и тестовых источников для сборки/сгенерированных/источников/apt/main и для сборки/сгенерированных/источников/apt/test соответственно и выбрать «Сохранить сгенерированные источники относительно: модуля». корень содержимого.

Мне также пришлось удалить Exclude из всего каталога сборки и пометить сгенерированный/исходный/apt/main каталог как исходный.

person gswierczynski    schedule 19.09.2015