1

Google の protobuf-gradle-plugin を使用すると、多数の proto ファイル入力に基づいて複数のファイルが生成される可能性があります。タスクを実行するときは、出力がどうなるかをアプリオリに判断するのではなく、出力されたすべてのファイルを確認することしかできません。

問題は、プロジェクトをクリーンアップするときです。Gradle は からアクセスできる出力ファイルを追跡しているようですAbstractTask.getOutputs().getPreviousFiles()。これはGradleの内部であるため、信頼できるとは思えません。すべての出力ファイルを削除したい場合、これを行う最善の方法は何ですか?

  1. 1 つの可能性は、出力フォルダーをビルド ディレクトリに制限することです。これを削除すると、生成されたすべてのファイルが削除されます。

  2. もう 1 つは、作成されたすべてのファイルを追跡する出力ディレクトリにマニフェストを作成することです。これにより、何を削除するかがわかります。

ここで何が提案されていますか?

4

1 に答える 1

0

内部 API に依存するのは得策ではありません。偶然に内部的なものではありませんが、通知なしに変更される可能性があるため、ビルドが台無しになります。

エラーが発生しにくく、実装が簡単なのは、出力を にリダイレクトすることproject.buildDirです。この場合、すべてが単純です。このフォルダーはclean呼び出し時に削除され、ファイルは消去されます。

マニフェストの作成に関しては、実装と保守が難しく、エラーが発生しやすいことがわかりました。適切な方法で実装するには、gradle メカニズムをよく理解する必要があります (見た目ほど難しくはないかもしれません)。また、このソリューションの長所も見つかりません。あなたがいずれかを持っている?

要約すると、出力フォルダーを変更します。

于 2015-10-27T06:21:33.357 に答える