Создайте uberJar из огуречных / заводных тестов, включая зависимости, используя gradle

у меня есть несколько функциональных тестов в {project_home}/src/test/groovy/

я хочу иметь возможность использовать задачу gradle для:

  1. Создайте файл jar из всех файлов .groovy в папке {project_home}/src/test/groovy/, включая все зависимости

  2. иметь возможность запускать этот файл jar вместо запуска отдельных файлов groovy

Во всех примерах, с которыми я столкнулся, есть основной метод, у меня нет main()

поэтому я попытался использовать build.gradle "Project" и добавил

task fatJar(type: Jar) {
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}

и побежал $gradle clean fatJar

но получил ошибку компиляции:

:Tests:EndToEndFunctionalTests:fatJar FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':Tests:EndToEndFunctionalTests:fatJar'.
> archive contains more than 65535 entries.

  To build this archive, please enable the zip64 extension.
  See: https://docs.gradle.org/2.7/dsl/org.gradle.api.tasks.bundling.Zip.html#org.gradle.api.tasks.bundling.Zip:zip64

у меня есть файл jar в /build/libs


person kamal    schedule 21.03.2016    source источник


Ответы (1)


task uberJar(type: Jar,dependsOn:[':compileGroovy']) {
    zip64 true
    from files(sourceSets.main.output.classesDir)
    from configurations.runtime.asFileTree.files.collect {zipTree(it) }
    with jar

}

Решил проблему.

person kamal    schedule 04.04.2016