Scala 如何创建重用includeFilter密钥的sbt插件?

Scala 如何创建重用includeFilter密钥的sbt插件?,scala,plugins,sbt,protocol-buffers,Scala,Plugins,Sbt,Protocol Buffers,我正在为Sbt创建一个插件 我创建了一个名为protoc的新TaskKey来将.proto文件转换为.java文件 val protoc = TaskKey[Seq[File]]("protoc", "Convert proto to java.") 我还将我的protoc任务注入sbt.Keys.sourceGenerators: sourceGenerators <+= protoc 当我试图重用sbt.Keys.includeFilter时,出现了问题。我试过这个: // For

我正在为Sbt创建一个插件

我创建了一个名为
protoc
的新
TaskKey
来将
.proto
文件转换为
.java
文件

val protoc = TaskKey[Seq[File]]("protoc", "Convert proto to java.")
我还将我的
protoc
任务注入
sbt.Keys.sourceGenerators

sourceGenerators <+= protoc
当我试图重用
sbt.Keys.includeFilter
时,出现了问题。我试过这个:

// For test protos being compiled
includeFilter in unmanagedSources in protoc in Test := "*.proto"

// For test protos being included
includeFilter in ProtobufKeys.unmanagedInclude in protoc in Test := "*.proto"
它不起作用,因为protoc中的
将覆盖非托管资源中的


如何创建符合“重用现有密钥”的代码生成器插件规则?

注意到有一个现有的StButf插件,您可能会考虑这样做:您能解释一下既需要由未管理的源和PotoCo来包含范围过滤器的要求,也不是简单的PotoCo吗?因为我有另一个自定义键<代码> unMauldIdabe<代码>,不可能有多个任务,如<代码>。在protoc
中,我看不到这种变化。因此,您可以在第一种情况下使用protoc中的
includeFilter,在第二种情况下使用ProtobufKeys中的
includeFilter。“重用现有密钥”规则旨在成为您可能必须在此处打破的准则。但是,您也可能会问,是否真的有必要为这两种配置分别配置includeFilter。创建一些其他配置如何,例如编译protobuf test protobuf,哪些组为protoc设置?如果我有自定义配置,我想我不再需要protoc中的
// For test protos being compiled
includeFilter in unmanagedSources in protoc in Test := "*.proto"

// For test protos being included
includeFilter in ProtobufKeys.unmanagedInclude in protoc in Test := "*.proto"