在 Gradle protobuf 插件中排除特定文件

问题描述 投票:0回答:1

我正在使用 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
仍然包含在协议调用中,有什么想法吗?

gradle protocol-buffers gradle-plugin
1个回答
0
投票

您需要将

exclude
视为具有自己的
srcDir
声明的闭包,如下所示:

sourceSets {
    main {
        java {
            srcDirs = [
                    'src/main/java',
                    'generated/main/java'
            ]
        }
        proto {
            srcDirs = [
              'foo/proto',
              '../bar/proto'
            ]
            exclude {
                srcDir '../bar/proto/names.proto'
            }
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.