2016-03-21 10 views
1

ich habe einige Funktionstests in {project_home}/src/test/groovy/uberJar aus Gurke/groovy Tests, einschließlich Abhängigkeiten mit gradle

Ich möchte eine gradle Aufgabe zu verwenden, um in der Lage:

  1. Machen Sie eine jAR-Datei aus allen .groovy Dateien unter {project_home}/src/test/groovy/inklusive alle Abhängigkeiten

  2. Lage sein, diese jAR-Datei als Ersatz des Laufens einzelnen groovy Dateien ausführen

das Beispiel stieß ich auf eine Hauptmethode Alle, die ein ich habe haben keine Haupt()

so das „Project“ build.gradle und den beigefügten ich versuchte

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

zu verwenden und lief $gradle clean fatJar

bekam aber Versagen kompilieren:

: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 

i tun, um die JAR-Datei haben unter/build/libs

Antwort

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

} 

das Problem gelöst.

Verwandte Themen