質問
両方のタスクが実行される場合、タスクが別のタスクの前/後に実行されることをどうにかして確認できますか? それらの間に常に存在する依存関係を追加したくありません。
バックグラウンド
サーバーを起動するタスクとサーバーに対してテストを実行するタスクの 2 つがあります。そのサーバーを起動するタスクは、新しいプロセスでそれを実行するので、実行できますgradle startServer runServerTests
。サーバーの起動には時間がかかるため、1 つの gradle プロセスでサーバーを起動し、別の gradle プロセスでテストを数回実行できる必要があります。
ここで、サーバーの起動とサーバー テストの実行を含む、CI 環境が行うすべてのことを行う単一のタスクを作成しようとしています。テストを実行する前にサーバーが起動していることを確認したいのは明らかですが、今のところうまくいきません。
試み
私の最初の試みは以下ですが、定義された依存関係の順序が保証されていないため、それは機能しません:
task doItAll(dependsOn: [startServer, runServerTests]) { ... }
アクションでタスクを呼び出す 2 回目の試みは機能せず、サポートされていません。
task doItAll() << {
tasks.startServer.execute()
tasks.runServerTests.execute()
}
解決策はロードマップにあります ( GRADLE-294、Initializer/Finalizer ) が、今は役に立ちません。