2017-09-17 9 views
0

ビルド後に変更されたプロジェクト内のモジュールの出力されたjarファイルのみを取得し、サーバーにコピーできるようにするbashスクリプトを作成します。私は完全なクリーンビルドを行う場合と同様に、毎回すべての単一モジュールjarをコピーする必要はありません。これはgitを使ったgradleプロジェクトです。私はgradleが、コードが更新されたモジュールのみに基づいてインクリメンタルビルドを行うことができることを知っていますが、このプラグイン(プラグインの場合)を呼び出すことができる方法はありますか?私はオンラインで検索していますが、情報を見つけることはできません。どのモジュールが変更されたのかは、どのようにグラデルビルドが知っていますか?

+0

Gradleは内部キャッシュ(バイナリ形式、 '.gradle'フォルダに格納されています)を使用します。成果物をコピーするためにbashを使用することは問題があるかもしれませんが、カスタムグラデルタスクをいつでも実装できます。 – Opal

答えて

1

Gradleは、タスクに関連付けられたinputsとという概念を持っています。 Gradleは、タスクが最初に実行されたときとその後の各実行時に、入力と出力のスナップショットを取得します。これらのスナップショットには、各ファイルの内容のハッシュが含まれています。これにより、入力および/または出力が変更された場合、後で実行するときにgradleがチェックし、タスクを再度実行する必要があるかどうかを判断できます。

この機能は、自分で作成したカスタムのグラデーションタスクでも使用でき、探している動作を実装できる方法の1つです。必要に応じて、bashスクリプトから対応するタスクを呼び出すことができます。詳細はこちらをご覧ください: Gradle User Guide, Chapter 14

そうでなければ、あなたのbashスクリプトは問題のファイルの変更されたタイムスタンプを比較したり、ハッシュ自体を比較して比較する必要があるかもしれないと思います。

関連する問題