12

Gradleタスクを次のようにしたいと思います。

  1. コマンドを実行します(「サーバーを起動する」ための外部プロセス)。
  2. stdoutで「ServerIsReady」という外部プロセスからの特定の出力を待ちます。
  3. 私のgradleタスクで何かをします(基本的に私の外部タスクと話すため)。
  4. 作業が完了したら、別の「サーバーの停止」コマンドを起動して外部プロセスを終了します。
  5. 両方のコマンドが完了したら、タスクを終了します。

これは、統合テストを実行するためにサーバーを起動するようなものですが、これはTomcat / Jettyタイプのサーバーではないため、コマンドラインから起動し、サーバーのstdoutを介してサーバーが「準備完了」になるのを待つ必要があります。

現在、execタスクを使用してタスクを実行し、出力を取得することができます。ですから、私はおそらくGroovy / Javaでコーディングして、私が望むことを達成できると思います。

ただし、この一見一般的なパターンをコーディングするのは面倒なようです。だから私はあまりコーディングせずにそのような問題を解決するより簡単な方法があるかどうか疑問に思っています-つまり、これはgradleがDSLを持っている一般的なパターンですか?

私はGradleの初心者なので、このトピックに関するアドバイスもいただければ幸いです。

4

2 に答える 2

1

私の知る限り、現在のバージョンのGradle(1.4)には、外部プロセスを起動/シャットダウンするための専用のDSLサポートがありません。ビルドスクリプト内でGroovyに実装できますが、それほど難しくはありません。

于 2013-03-19T09:20:11.747 に答える