Gradle Thrift Plugin报错:java.io.IOException: error=2, No such file or direc

Question

Gradle Thrift Plugin插件配置好之后,在命令行里之行"gradle compileThrift"命令能够成功之行。在Intellij里面执行compileThrift任务,却老是报错,报错如下:

  • What went wrong: Execution failed for task ':activity-thrift:compileThrift'.

    A problem occurred starting process 'command 'thrift''

  • Try: Run with --debug option to get more log output.

  • Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':activity-thrift:compileThrift'.

    ...

    Caused by: java.io.IOException: Cannot run program "thrift" (in directory "/Users/yuhong/develop/gitlab/activity/activity-thrift"): error=2, No such file or directory

    ...

    Caused by: java.io.IOException: error=2, No such file or directory

    ... 5 more

    BUILD FAILED

    Total time: 0.478 secs

    Stopped 0 compiler daemon(s).

    error=2, No such file or directory

Answer

这个是因为在Intellij里面之行thrift命令时,无法找到thrift可执行文件导致的。Gradle Thrift Plugin插件里面有专门设置Thrift可执行文件的属性:thriftExecutable,默认值为thrift。只需要设置为完整路径名就可以解决这个报错的问题,如下:

compileThrift {
    recurse true
    debug true

    generator 'html'
    generator 'java', 'private-members'
    thriftExecutable '/usr/local/bin/thrift'
    outputDir = file('src/generated/thrift')
}

results matching ""

    No results matching ""