Kann Gradle jar mehrere Projekte in ein Glas?
Kann Gradle jar mehrere Projekte in ein Glas ?
Ich weiß, Sie können es für ein einzelnes Projekt mit einer Methode, wie diese:
task packageTests(type: Jar) {
from sourceSets.test.classes
}
Aber wie funktioniert eine person mit Reißverschluss mehrere sub-Projekte in einem jar?
Ich versuchte dies und es funktioniert nicht:
task packageTests(type: Jar) {
from project(':core').sourceSets.main.classes
from project(':core:google').sourceSets.test.classes
from project(':core:bing').sourceSets.test.classes
}
- Sie können fatJar, OneJar, oder application-zip.
- Alle 3 von denen sind 1 Projekt-spezifisch. Keiner von Ihnen wird mit Reißverschluss ein root-Projekt und alle seine Teilprojekte.
- Alle diese arbeiten beruhen auf dem Modell, dass das Projekt aufgebracht hat, die anderen Abhängigkeiten.
- OneJar ist ganz klar ein Projekt, dass die Reißverschlüsse bis ein einzelnes Projekt und umfasst alle Abhängigkeiten in der .jar. Es löst nicht dieses problem für mich. "- Anwendung zip" wird nicht funktionieren, weil GitHub schon macht das für mich. Ich habe versucht, fatJar, aber die Anweisungen nicht nicht funktioniert und Gradle kann nicht kompiliert werden, mein script.
- Gist der änderungen, die notwendig ist, um fatJar zu Ihrem Projekt. Führen Sie einfach
gradle fatJar
. - Das einzige problem mit dem code ist
.classes
ist nicht Mitglied dermain
odertest
. Von der IDE-Sie können sehenoutput
aus dem drop-down.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist meine Lösung, das ist ein bisschen einfacher:
Code wurde getestet auf Gradle 1.12
Diese Arbeit sollte für das, was Sie tun möchten. Dies sollte in der root-gradle-build-file.
Können Sie veröffentlichen diese, indem Sie es als ein Archiv:
Folgende Lösung ist sehr ähnlich zu den vorgeschlagenen Katalysator.X aber verwendet jar Sie die Aufgabe direkt.
Es wurde getestet, gegen Gradle 2.1 und 2.2.1