【发布时间】:2021-07-13 14:28:50
【问题描述】:
如何配置dagger注入groovy类,注入groovy类?
我最初试图让 dagger 将 groovy 类注入到我的 java 应用程序中,但我发现 dagger 抱怨找不到 groovy 类。查看日志,似乎compileGroovy 发生在compileJava 之后。而且dagger编译器的注解处理好像在compileJava。我猜这可能是问题所在——目前没有可用的 groovy 类。但我还没有想出一种方法来强制 dagger 或 groovy 与另一个一起工作。
我似乎无法上传 .tar.gz。但是,如果有人需要一个最小的演示代码来实现我想要实现的目标,这些可能会有所帮助(使用 gradle 7):
build.gradle:
plugins {
id 'groovy'
id 'java'
}
group 'org.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
annotationProcessor 'com.google.dagger:dagger-compiler:2.+'
implementation 'com.google.dagger:dagger:2.+'
implementation 'org.codehaus.groovy:groovy-all:3.+'
}
settings.gradle:
rootProject.name = 'groovy-dagger1'
src/main/groovy/org/example/dagger/MainComponent.groovy:
package org.example.dagger
import dagger.Component
@Component(modules = [
MainModule,
])
interface MainComponent {
String message();
}
src/main/groovy/org/example/dagger/MainModule.groovy:
package org.example.dagger
import dagger.Module
import dagger.Provides
@Module
final class MainModule {
@Provides
static String message() {
return 'Hello Groovy Dagger!'
}
}
src/main/groovy/org/example/main/Main.groovy:
package org.example.main;
class Main {
static void main(String[] args) {
// Dagger component does not exist :/
// println DaggerMainComponent.create().message()
}
}
【问题讨论】:
-
显示你得到的堆栈跟踪