2017-12-21 3 views
0

Ich benutze das shadowJar Plugin für Gradle (4.2.1), um die so genannte fatJar oder uberJar zu bauen. Dies funktioniert wie erwartet, aber ich möchte einige Aktionen hinzufügen, nachdem das Gebäude fertig ist. Genauer gesagt möchte ich die resultierende Datei ausführbar machen (in Unix Begriffe, d.h. chmod +x) und sie dann in ein bestimmtes Verzeichnis kopieren. Ich habe viel gegooglet und ich weiß, dass beide Aufgaben möglich sind. Ich würde gerne wissen, ob ich ein Skript (Aufgabe) schreiben sollte, die shadowJar läuft und dann tut, was ich will, oder ich sollte die shadowJar selbst ändern, um die Operationen einzubetten, die ich brauche.Hinzufügen von benutzerdefinierten Befehl zu Gradle Skript

Antwort

0

Ich denke, ein gutes Kriterium, um über eine solche Situation zu entscheiden ist, sich zu fragen, ob die neuen Funktionen wirklich Teil der Verantwortung der shoadowJar sind. Wenn die Antwort nein ist, dann wäre es besser (wie Sie erwähnt haben) eine andere Aufgabe zu haben, die darüber hinaus läuft. Auf diese Weise können Sie die shadowJar in viel mehr verschiedenen Szenarien wiederverwenden, indem Sie sie mit anderen Aufgaben kombinieren. Wenn Sie festlegen, dass die neue Version von der shadowJar abhängt, können Sie sicher sein, dass Sie die Task shadowJar immer noch einzeln aufrufen können, während das Aufrufen der neuen Task immer die shadowJar auslöst. Ihre neue Aufgabe wäre etwas in der Art:

task afterShadowJar (dependesOn: 'shadowJar') { 
    // manipulate file permissions, etc. 
} 
+0

Ich werde mit der Erstellung neuer Aufgabe dann gehen. Wo sollte ich diese neue Aufgabe stellen? In 'build.gradle'? – menteith

+0

Ja, Sie können es einfach in das 'build.gradle' des Moduls einfügen, auf das das Plugin bereits angewendet wird. – zaerymoghaddam

Verwandte Themen