2017-07-16 149 views
0

我的項目使用gRPC並在生成的文件夾中生成一個文件。無法訪問生成的java文件

enter image description here

這是我模塊的build.gradle。

apply plugin: 'java' 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 

    compile 'io.grpc:grpc-okhttp:1.4.0' 
    compile 'io.grpc:grpc-protobuf-lite:1.4.0' 
    compile 'io.grpc:grpc-stub:1.4.0' 
    compile 'javax.annotation:javax.annotation-api:1.2' 
} 

sourceCompatibility = "1.7" 
targetCompatibility = "1.7" 


apply plugin: 'com.google.protobuf' 
def grpcVersion = '1.4.0' // CURRENT_GRPC_VERSION 
protobuf { 
    protoc { 
     artifact = 'com.google.protobuf:protoc:3.3.0' 
    } 
    plugins { 
     grpc { 
      artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}" 
     } 
    } 
    generateProtoTasks { 
     all()*.plugins { 
      grpc { 
       // To generate deprecated interfaces and static bindService method, 
       // turn the enable_deprecated option to true below: 
       option 'enable_deprecated=false' 
      } 
     } 
    } 
} 


// Inform IntelliJ projects about the generated code. 
apply plugin: 'idea' 

idea { 
    module { 
     // Not using generatedSourceDirs because of 
     // https://discuss.gradle.org/t/support-for-intellij-2016/15294/8 
     sourceDirs += file("${projectDir}/build/generated/source/proto/main/java"); 
     sourceDirs += file("${projectDir}/build/generated/source/proto/main/grpc"); 
    } 
} 

我該如何解決這個問題?

回答

2

您必須將此文件夾添加到您的源集。 下面應該工作:

sourceSets { 
    generated{ 
     java.srcDir "${projectDir}/build/generated/source/proto/main/java" 
    } 
} 

Here是自定義源設置一個全面的文檔。

+0

您的回答啓發了我。非常感謝。 – Gqqnbig

+0

@LoveRight,沒問題,歡迎您接受。 – meltedspark

0

我想通了。我的iml文件包含該文件夾,但也排除它。我認爲排除優先,所以我必須提取<excludeFolder>元素。

enter image description here