Gradle Application Plugin - Erstellen mehrerer Start-Skripte / -Dists für dasselbe Projekt mit verschiedenen mainClassName

8

Wir haben ein Gradle-Projekt, das das Java-Plugin verwendet, das ein paar Befehlszeilen-Tools hat, die es zu erstellen braucht. Das Projekt wird einfach in ein Jar mit seinen Abhängigkeiten verpackt. Wir möchten dann ein paar Startskripte, um die verschiedenen Einstiegspunkte in diesem Projekt für jedes dieser Tools zu starten.

Natürlich ist das Programm Plugin eine gute Wahl. Deshalb haben wir java in application geändert und ein mainClassName bereitgestellt, um Startskripte und tar-Distributionen zu erstellen. Dadurch wurde ein einzelnes Anwendungs-Jar erstellt, aber nur ein Satz von Startscripts, die den angegebenen mainClassName verwendeten.

Wie können wir mehrere Startskripte für verschiedene Einstiegspunkte erstellen? (verschiedene mainClassName 's?)

Ein Ansatz, den ich ausprobiert habe, war die Erstellung einiger Unterprojekte, bei denen das -Anwendung -Plugin angewendet wurde und die einzelnen mainClassNames separat spezifiziert wurden

%Vor%

Und in den Stammprojekten settings.gradle

referenziert %Vor%

Das hat funktioniert - aber jedes Unterprojekt erstellt ein identisches jar (nur mit dem Namen des Unterprojekts benannt) und jeder Unterordner enthält eine Kopie dieses jar plus eine weitere Kopie aller Abhängigkeiten. Das ist ein wenig verschwenderisch. Es könnte auch für einen neuen Entwickler verwirrend sein, die Teilprojekte dort mit all diesen Aufgaben zu sehen und überhaupt keinen Code.

Gibt es einen besseren Weg, Gregle zu sagen, dass es mehrere anwendungsbezogene Aufgaben machen soll, aber den mainClassName für jeden ändern soll, ohne auf leere Unterprojekte zurückgreifen zu müssen?

Danke!

    
neversleepz 23.12.2013, 03:19
quelle

1 Antwort

2

Sie können immer auf die Aufgabenebene zugreifen und die erforderlichen Aufgaben selbst konfigurieren / konfigurieren / verdrahten oder zusätzliche Aufgaben zusätzlich zu dem, was apply plugin: "application" bietet, deklarieren. Weitere Informationen finden Sie im Kapitel Anwendungs-Plug-in im Benutzerhandbuch zu Gradle, für das entsprechende Aufgaben verfügbar sind.

    
Peter Niederwieser 23.12.2013, 07:43
quelle

Tags und Links