Flyway用の Gradle プラグインを作成する一環として、Java の移行を処理する際に問題に遭遇しました。
プロジェクトのコンパイル済みクラスへのクラスパスへのアクセスをGradleプラグインに提供して、それらをロードして実行できるようにする最良の方法は何ですか?
そのため、プラグインが適用されるプロジェクトに含まれるコードを実行するタスクを追加するプラグインがあるという状況です。Iterable<File>
この場合、タスク (クラス)には、実行されるコードのクラスパス (例: ) を使用して (プラグインによって) 設定されるタイプの入力プロパティが必要sourceSets.main.runtimeClasspath
です。その後、タスクは次の方法からコードを実行する方法を選択できます。
project.javaexec {}
、別の JVM でコードを実行するために使用します。コードを直接実行できない場合、タスクはブートストラップ コードをjavaexec
クラス パスに挿入する必要がある場合があります。を使用する代わりに考えられるのは、最初にタスクproject.javaexec
を使用することです。JavaExec