我正在使用 Gradle 构建我的项目并使用 Gradle Protobuf 插件编译一些协议缓冲区。我想在多个目录中构建原型并排除单个文件。
sourceSets {
main {
java {
srcDirs = [
'src/main/java',
'generated/main/java'
]
}
proto {
srcDirs = [
'foo/proto',
'../bar/proto'
]
exclude '../bar/proto/names.proto'
}
} }
但是
exclude
语句不起作用,并且 names.proto
仍然包含在协议调用中,有什么想法吗?
您需要将
exclude
视为具有自己的 srcDir
声明的闭包,如下所示:
sourceSets {
main {
java {
srcDirs = [
'src/main/java',
'generated/main/java'
]
}
proto {
srcDirs = [
'foo/proto',
'../bar/proto'
]
exclude {
srcDir '../bar/proto/names.proto'
}
}
}
}