gradle 生成的 类 的 ProtoBuf 在 IntelliJ 的另一个模块中不可见

ProtoBuffer generated classes by gradle are not visible in another module by IntelliJ

您好,我有一个 Gradle 模块可以根据 .proto 文件生成 Protocol Buffer 的 类 并将其打包为 .jar 和另一个导入该 jar 的模块。生成的 类 存在于 jar 中,但 IntelliJ 看不到它们。

具有 .proto 定义的模型模块:

description = ''

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "com.google.protobuf:protobuf-gradle-plugin:0.7.7"
    }
}

dependencies {
    compile 'com.google.protobuf:protobuf-java:2.6.1'
}

apply plugin: 'java'
apply plugin: "com.google.protobuf"
protobuf {
    protoc {
        artifact = 'com.google.protobuf:protoc:2.6.1'
    }
}

控制器模块导入模型。

description = ''

dependencies {
    compile project(':models')
}

问题是当我尝试在控制器中使用生成的模型时 类 IntelliJ 看不到它们。

我找到的解决方案:

将以下行添加到构建中:

sourceSets {
    main {
        java {
            srcDirs = ["src/main/java", "${protobuf.generatedFilesBaseDir}/main/java"]
        }
    }
}