代码生成位置
默认位置
默认代码的生成位置在$buildDir/generated/source/proto
。
Message
在目录下的/main/java
。
Service
在目录下的/main/grpc
。
位置组成
生成代码位置默认在
$generatedFilesBaseDir/$sourceSet/$builtinPluginName
下面。先分割一下前面的默认位置:
$generatedFilesBaseDir
:$buildDir/generated
$sourceSet
:/source/proto
builtPluginName
:/grpc
也就是说,我们只要改变了对应的参数,就能够直接把代码生成到工程当中。
generatedFilesBaseDir
protobuf {
generatedFilesBaseDir = "src"
}
我在protobuf
配置中添加了这一句(其他配置保留
),clean
之后generateProto
,如下
根目录已经由$buildDir/generated
变成了src
。
$sourceSet
就是main
。
Message
就是自动生成在java
目录下,这个就达到了目的。
但是service
前面有个buildPluginName
,也就是grpc
,所以目录不在java
下面。
Message
:$generatedFilesBaseDir/$sourceSet/java
service
:$generatedFilesBaseDir/$sourceSet/$buildPluginName
现在,我们需要把最后一层的子目录改掉。
outputSubDir
generateProtoTasks {
all()*.plugins {
grpc {
outputSubDir = 'godme'
}
}
}
生成的路径为
grpc
就变成了godme
。
如果把godme
改成java
,那么,生成的不论是service
还是Message
都能够自动归到工程代码当中了。
资源加载位置
sourceSets{
main {
proto {
srcDir "src/main/proto"
srcDir "src/test/proto"
}
}
}
加载指定为位置proto
小结
更多配置看官网,目前只是需要自动生成代码到工程,嗯简单总结一下。
- 修改根目录为
src
protobuf{
generatedFilesBaseDir = "src"
}
- 修改
grpc
为java
generateProtoTasks {
all()*.plugins {
grpc {
outputSubDir = 'java'
}
}
}
- 注意层级关系
protobuf{
generatedFilesBaseDir = "src"
generateProtoTasks{
all()*.plugins {
grpc {
outputSubDir = "java"
}
}
}
}
其他的到时候慢慢翻阅,具体可配置项同SpringBoot
一般,自己翻阅源代码,或者看官网。
代码在此