2012-03-13 8 views
14

クリーンなタスク(Javaビルド用)に追加の削除機能を追加したいと思います。Gradle - 削除しないでください

私はグラブルビルドスクリプトに以下を追加しようとします。

"クリーン"タスクをチューニングすると、サンプルファイルが削除されない...私はまた、何が起こったかを示すエラーメッセージを表示しません。

私は次のことをしようとした場合:

task deleteStuff(type: Delete) { 
    delete 'test.txt' 
} 

物事は作業を行います。

(doLast経由で)削除機能をタスクに追加できませんか?これを行う正しい方法は何ですか(Antタスクでハッキングすることなく)。

答えて

15

この2つのコードスニペットでは、Project.delete()ではなく、Delete.delete()を呼び出しています。つまり、Deleteタスクを構成しています。 Deleteタスクが実行された後でこれを行う(最初のスニペットのように)のが遅すぎます。

Deleteタスクの場合、操作にdoLastを追加する理由はありません。あなたの2番目のスニペットがはっきりと望ましいです。他のタスクではdeleteメソッドがないため、doLastのアプローチが有効です。またはproject.delete()で曖昧さを排除できます。

+0

ピーター、明確にするためにproject.deleteを言及してくれてありがとう。それは私の混乱の多くをクリアしました。 –

1

準備フェーズ(すべてのタスクで実行されます)で時間を費やさないようにする理由は、doFirstを使用して削除タスクを設定することができます。 上記の例でclean.doLastの代わりにclean.doFirstを使用すると動作します。

関連する問題