有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何为代码生成配置Gradle,以便IntelliJ识别生成的java源代码?

我正在将一个遗留项目迁移到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会将生成的源添加为源,但无法将其标识为生成的

sourceSets {
    main {
        java {
            srcDir "${buildDir}/generated-src/"
        }
    }
}

有没有办法让IntelliJ像识别生成的源一样识别生成的源,以便显示阻止编辑这些类的正常警告


共 (1) 个答案

  1. # 1 楼答案

    您需要明确地告诉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/')
        }
    }