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')
}