ここに私が達成しようとしているものがあります:
EndToEndFunctionalTests テスト用の uberJar をビルドします。
task uberJar(type: Jar,dependsOn:[':compileGroovy']) {
zip64 true
from files(sourceSets.main.output.classesDir)
from configurations.runtime.asFileTree.files.collect {zipTree(it) }
with jar
}
その結果、私は得る:
EndToEndFunctionalTests-develop.local.SNAPSHOT.jar
だから私がやろうとしているのは、これを次のように実行することです:
$ java -jar EndToEndFunctionalTests-develop.local.SNAPSHOT.jar
no main manifest attribute, in EndToEndFunctionalTests-develop.local.SNAPSHOT.jar
main() を偽造して MANIFEST に含める方法があるので、この jar を実行します。
キュウリ ランナーを使用して gradle 経由でコマンド ラインからキュウリ テストを実行できましたが、次の理由により、jar を実行できるようにする必要があります。
- このjarにはすべての依存関係があるため、どこでも実行できます
- ステージングと QA でこれらのテストの実行時間を短縮します。これは、継続的インテグレーション パイプラインで一度だけ作成し、さまざまな環境で実行する必要があるためです。