java - Dagger2 + gradle + intellij : generated classes are not found and treated as a compile error/won't autocomplete

标签 java intellij-idea annotation-processing dagger-2

我正在尝试让 intellij 与我的功能性 gradle build sans 一起使用各种其他插件。 various plugins我已经将中断支持与我需要使用的另一个插件一起使用(除其他问题外,它会在默认位置查找生成的源)。我已经在这个问题上工作了一段时间并且取得了一定的成功,但总是有一些警告。许多插件不能很好地与测试目录中的 apt 等配合使用。

Enabling annotation处理器并将输出目录设置为/build/classes/main 和/build/classes/test 不会产生结果,尽管这是 gradle 插件似乎放置由包含 dagger2- 生成的 .java 和 .class 文件的地方编译器。

我可以通过创造性地调整模块配置中生成的源集参数来使一切正常运行,但这永远不会存在。也就是说,如果您关闭应用程序,则必须重新配置选项。

如有任何帮助,我们将不胜感激。

最佳答案

我通过以下步骤解决了这个问题: 1) 修改compileJava任务指定目标源位置

compileJava {
    options.compilerArgs+= [
            "-s", project.projectDir.absolutePath + '/src/main/generated'
    ]
}

2)告诉 IntelliJ Idea 这些文件是源

idea {
    module {
        // generatedSourceDir does  not work for some reason
        sourceDirs  += file(project.projectDir.absolutePath + '/src/main/generated')
    }
}

P.S Idea 插件应该被应用:

apply plugin: 'idea'

关于java - Dagger2 + gradle + intellij : generated classes are not found and treated as a compile error/won't autocomplete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33332457/

相关文章:

java正则表达式,读取文件夹

java - 当使用 JAVA 的 Selenium Webdriver 测试失败时自动截图并上传到 GDrive 或 Dropbox

java - QueryDSL 简单查询不会转换为对象

intellij-idea - IntelliJ : evaluate lambda expression raises an compile error in debugging

java - 在 IntelliJ IDEA 中运行单类 Java 控制台应用程序?

intellij-idea - 如何强制 IntelliJ IDEA 再次显示欢迎屏幕?

java - 图像尺寸通知android

android - 如何减少 React Native Android 应用程序的启动时间

java - 如何正确使用 Types.isAssignable?

java - 如何在 Java 项目的 IntelliJ 中使用 Dagger2