0

ここに私が達成しようとしているものがあります:

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 を実行できるようにする必要があります。

  1. このjarにはすべての依存関係があるため、どこでも実行できます
  2. ステージングと QA でこれらのテストの実行時間を短縮します。これは、継続的インテグレーション パイプラインで一度だけ作成し、さまざまな環境で実行する必要があるためです。
4

1 に答える 1