如何将生成的源文件夹添加到 Gradle 和 IntelliJ 中的源路径?

How can I add a generated source folder to my source path in Gradle and IntelliJ?

我使用 thrift,它在构建目录 (build/generated-sources/thrift/<package name>/<class>) 下生成一些源 java 文件(接口),但在我的 src/main/java 下,我有我的 类 具有相同的生成的 java 文件中的包定义和我的 类 也实现了节俭生成的接口,所以我如何在我的 build.gradle 中配置它所以它适用于 intelliJ 以及 build

plugins {
  id "org.jruyi.thrift" version "0.3.1"
}
apply plugin: 'idea'
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: "org.jruyi.thrift"

group 'com.hello'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.5

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'org.apache.thrift', name: 'libthrift', version:'0.9.3'
    compile 'com.datastax.cassandra:cassandra-driver-core:3.0.0'
    compile 'com.datastax.cassandra:cassandra-driver-mapping:3.0.0'
    testCompile group: 'junit', name: 'junit', version: '4.11'
}

compileThrift {
    thriftExecutable "/usr/local/hello/bin/thrift"
    sourceDir "src/main/thrift"
    createGenFolder false
}

task thrift(type: Exec) {
    commandLine '/usr/local/hello/bin/thrift'
}


compileJava {
    dependsOn 'compileThrift'

gradle 构建应该会自动运行。 要使其在 Intellij 上运行,请尝试将以下内容添加到您的 build.gradle.

idea.module.sourceDirs += file("$buildDir/generated-sources/thrift")

别忘了刷新您的 gradle 项目。