3

Sbt 用のprotobufプラグインを作成しています。

ファイルをファイルに変換する新しいTaskKey名前を作成しました。protoc.proto.java

val protoc = TaskKey[Seq[File]]("protoc", "Convert proto to java.")

protocまた、タスクをsbt.Keys.sourceGenerators次の場所に注入しました。

sourceGenerators <+= protoc

プラグインのベスト プラクティスで述べたようにsbt.Keys.sources、ソース.protoファイルを示すために既存の SBT を再利用しました。これらと同等のコードをいくつか書きました:

// To generate .java from main .proto
protoc in Compile <<= (sources in protoc in Compile, ...) map { (protoSources, ...) =>
  ...
}

// To generate .java from test .proto
protoc in Test <<= (sources in protoc in Test, ...) map { (protoSources, ...) =>
  ...
}

を再利用しようとしたときに問題が発生しました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"

in protocカバーするので、うまくいきませんでしたin unmanagedSources

「既存のキーを再利用する」ルールに準拠するコード ジェネレーター プラグインを作成するにはどうすればよいですか?

4

0 に答える 0