2017-12-29 13 views
1

Ich versuche, eine benutzerdefinierte Gradle 4.3.1 Aufgabe zu erstellen, das wird:Gradle zip Aufgabe versagt noch arbeiten

  1. Run ./gradlew build, die ein build/libs/myapp.jar Artefakt erzeugt; dann
  2. Erstellt eine myapp-1.0.zip ZIP-Datei, deren Inhalt gehören:
    • build/libs/myapp.jar; und
    • ./AppGuide.md; und
    • ./app-config.json

Hier ist mein bester Versuch:

task zipMeUp(type: Zip) { 
    String zipName = 'myapp-1.0.zip' 

    doFirst { 
    tasks.build 
    } 

    from 'build/libs/myapp.jar' 
    from 'AppGuide.md' 
    from 'app-config.json' 
    into zipName 
} 

Wenn ich laufen diese (./gradlew zipMeUp) ich folgende Ausgabe:

HarveyZ:myapp myuser$ ./gradlew zipMeUp 

BUILD SUCCESSFUL in 2s 
1 actionable task: 1 executed 

Aber nichts scheint tatsächlich passieren (keine myapp-1.0.zip Datei im Verzeichnis) . Irgendeine Idee, was die Lösung ist?

Antwort

1

Verwenden Sie keine doFirst verwenden dependsOn

task zipMeUp(type:Zip, dependsOn :[build]) { 
    String zipName = 'myapp-1.0.zip' 

    from 'build/libs/myapp.jar' 
    from 'AppGuide.md' 
    from 'app-config.json' 

    version = "1.0" 
    baseName = "myapp" 
} 
+0

Dank @ Daniel Taub (+1) Aufgabe, die Sie sicher, dass 'packJar' /' Jar' sind, ist die Art richtige Aufgabe obwohl abzuhängen? Dies ist eigentlich ein Frühling Boot-Anwendung, die einige sehr spezifische Gradle Fähigkeiten ergänzt und erfordert './gradlew build', um es richtig zu bauen lief werden (schafft eine in sich geschlossene ausführbare JAR mit eingebetteten Jetty Container, macht eine Menge andere Magie usw.) – smeeb

+0

Sie haben recht, ich habe gerade nicht nein, dass Sie Feder verwenden, um Ihr Glas zu packen –