由IntelliJ在另一个模块中看不到由gradle生成的ProtoBuffer类

时间:2016-08-05 08:50:23

标签: java intellij-idea gradle protocol-buffers

您好我有一个Gradle模块,根据.proto文件生成协议缓冲区的类,并将其打包为.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')
}

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

1 个答案:

答案 0 :(得分:3)

解决方案我发现:

添加到以下行的构建:

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