4

別のウィンドウで同じプロジェクトの 2 番目の Gradle タスクを実行しようとすると、2 番目のタスクがロックでブロックされているように見えます。これを回避する簡単な方法はありますか?

私がしようとしていること: 私のプロジェクトには、アプリケーション プラグインを使用するサーバー サブプロジェクトがいくつかあります。$ gradle :server1:run接続して試すことができるように、両方 (例: ) を開始したいと思います。

2台のサーバーをテストエリアにデプロイして起動するタスクを書けるのは知っていますが、1つのアプリの開発時には application:run タスクが便利なので、できれば2台で使いたいと思っています。

Gradle 2.7を使用しています。

4

1 に答える 1

1

これが私がやったことです。runアプリケーション プラグインのタスクを使用するのではなく、 を使用してinstallDist、生成された開始スクリプトを実行する簡単なタスクを作成しました。次に、簡単なサービス スクリプトを作成して拡張し、 に保存しましsrc/dist/binた。スクリプトは、開始、停止、およびステータス操作を処理します。最終結果:

ext.installDir = "$buildDir/install/" + project.name
ext.command = "$installDir/bin/" + project.name

task start(type:Exec, dependsOn:'installDist') {
  description "Starts the " + applicationName + " application"
  workingDir "$installDir"
  commandLine "$command", "start"
}

task stop(type:Exec, dependsOn:'installDist') {
  description "Stops the " + applicationName + " application"
  workingDir "$installDir"
  commandLine "$command", "stop"
}

task status(type:Exec, dependsOn:'installDist') {
  description "Displays the " + applicationName + " application status"
  workingDir "$installDir"
  commandLine "$command", "status"
}

親プロジェクトから、次のように入力できます。

$ gradlew start

サーバーと

$ gradlew stop

両方をシャットダウンします。

于 2015-10-22T03:00:53.480 に答える