如何为代码生成配置 Gradle 以便 IntelliJ 识别生成的 java 源代码?
How to configure Gradle for code generation so that IntelliJ recognises generated java source?
我正在将遗留项目迁移到 Gradle。构建过程的一个步骤是为专有协议生成 java 源代码。不幸的是,将项目导入IntelliJ时,无法识别生成的源代码,因此项目无法使用IntelliJ构建。
我有以下构建脚本(去除了不相关的部分):
apply plugin: "base"
apply plugin: "java"
task generate {
description "Generates java code"
inputs.files(fileTree("src/codegen/"))
outputs.dir("${buildDir}/generated-src/")
// ...
// codegen
// ...
}
compileJava {
source(generate.outputs)
}
如果我添加以下内容,IntelliJ 会将生成的源添加为源,但无法将其识别为 generated:
sourceSets {
main {
java {
srcDir "${buildDir}/generated-src/"
}
}
}
有没有办法让 IntelliJ 将生成的源识别为生成的源,以便显示防止编辑这些 类 的正常警告?
您需要明确告诉 Idea 该目录包含自动生成的源,如 this post 中所述。
apply plugin: "idea"
sourceSets.main.java.srcDir new File(buildDir, '${buildDir}/generated-src/')
idea {
module {
// Marks the already(!) added srcDir as "generated"
generatedSourceDirs += file('${buildDir}/generated-src/')
}
}
我正在将遗留项目迁移到 Gradle。构建过程的一个步骤是为专有协议生成 java 源代码。不幸的是,将项目导入IntelliJ时,无法识别生成的源代码,因此项目无法使用IntelliJ构建。
我有以下构建脚本(去除了不相关的部分):
apply plugin: "base"
apply plugin: "java"
task generate {
description "Generates java code"
inputs.files(fileTree("src/codegen/"))
outputs.dir("${buildDir}/generated-src/")
// ...
// codegen
// ...
}
compileJava {
source(generate.outputs)
}
如果我添加以下内容,IntelliJ 会将生成的源添加为源,但无法将其识别为 generated:
sourceSets {
main {
java {
srcDir "${buildDir}/generated-src/"
}
}
}
有没有办法让 IntelliJ 将生成的源识别为生成的源,以便显示防止编辑这些 类 的正常警告?
您需要明确告诉 Idea 该目录包含自动生成的源,如 this post 中所述。
apply plugin: "idea"
sourceSets.main.java.srcDir new File(buildDir, '${buildDir}/generated-src/')
idea {
module {
// Marks the already(!) added srcDir as "generated"
generatedSourceDirs += file('${buildDir}/generated-src/')
}
}