使用Gradle时如何在IntelliJ IDEA中集成生成的源?

Ten*_*ive 7 java intellij-idea javacc gradle

我目前正在使用JavaCC(使用此处的JavaCC gradle插件)来生成我的一些源代码.项目的其余部分确实依赖于该代码.如果我将项目导入IDEA或清理项目,那么我将收到错误,因为找不到类.但是,构建项目确实有效.

是否可以修改gradle文件,以便IntelliJ(也可能是其他编辑者)知道在分析代码之前生成这些源?

生成的代码保存在src/gen/java /中,生成的代码的位置通过以下方式得知:

sourceSets {
    gen {
        java {
            srcDir 'src/gen/java'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

由于IntelliJ正在构建项目,我认为最简单的方法是:

compileJava.dependsOn <generateSourcesTask>
Run Code Online (Sandbox Code Playgroud)

但是将它添加到gradle文件没有效果(可能是因为JavaCC插件已经这样做了).

Dan*_*Dan 2

您是否尝试将生成的源目录添加到主目录?像这样:

sourceSets {
    main {
        java {
            srcDirs = ["src/main/java", "src/gen/java"]
        }
    } 
}
Run Code Online (Sandbox Code Playgroud)

它对我有用:

compileJava.dependsOn('generateSourcesTask')
Run Code Online (Sandbox Code Playgroud)