Java Dagger 2生成的文件无法访问
我一生中第一次使用匕首2,我想我遇到了一些过期用户认为无关紧要的问题,因此在他们的指南中被忽略了。 所以我创建了一个简单的绝对空类,它什么也不做,用Java Dagger 2生成的文件无法访问,java,gradle,dagger-2,Java,Gradle,Dagger 2,我一生中第一次使用匕首2,我想我遇到了一些过期用户认为无关紧要的问题,因此在他们的指南中被忽略了。 所以我创建了一个简单的绝对空类,它什么也不做,用@Inject标记它的构造函数,然后创建了一个带有@Component注释的接口,其方法返回类型是我的空类。然后我调用了gradlew build,Dagger实际生成了它必须生成的文件。但这些文件位于IDEA项目的build/generated/source/apt/main/com/warden/bot/目录中,而源代码位于项目的src/main
@Inject
标记它的构造函数,然后创建了一个带有@Component
注释的接口,其方法返回类型是我的空类。然后我调用了gradlew build
,Dagger实际生成了它必须生成的文件。但这些文件位于IDEA项目的build/generated/source/apt/main/com/warden/bot/目录中,而源代码位于项目的src/main/java/com/warden/bot/目录中,因此我不能在程序中使用Dagger生成的代码。匕首在使用前应该有特殊的设置吗?我现在该怎么办
UPD
我的build.gradle文件是:
plugins {
id "net.ltgt.apt" version "0.12"
}
version '2.0'
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.dagger:dagger:2.11'
apt 'com.google.dagger:dagger-compiler:2.11'
testCompile group: 'junit', name: 'junit', version: '4.12'
}
jar {
manifest {
attributes(
'Class-Path': configurations.compile.collect { it.getName() }.join(' '),
'Main-Class': 'com.warden.bot.Main'
)
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
你怎么知道你不能在你的程序中使用它们?生成的文件夹/源与普通源文件一样添加到源路径。如果没有,请提供有关您的构建(gradle、maven、ant等)的更多信息、您使用的构建脚本、您如何运行应用程序、,etc@DavidMedenjar我完全知道我不能,因为当我放置
DaggerBotComponent
时,IDEA立即显示一个错误,如无法解析符号“DaggerBotComponent”。此外,我还将我的build.gradle添加到了问题的主体中。似乎IDE的用法已经被记录在案:您如何知道您不能在程序中使用它们?生成的文件夹/源与普通源文件一样添加到源路径。如果没有,请提供有关您的构建(gradle、maven、ant等)的更多信息、您使用的构建脚本、您如何运行应用程序、,etc@DavidMedenjar我完全知道我不能,因为当我放置DaggerBotComponent
时,IDEA立即显示一个错误,如无法解析符号“DaggerBotComponent”。此外,我还将我的build.gradle添加到了问题的主体中。似乎IDE的使用有文档记录: