Wie lege ich einen zusätzlichen Ordner fest, der auf dem Klassenpfad für die Task "Ausführen" des Anwendungs-Plug-ins von Gradle installiert werden soll?

8

Ich habe mein grdled build-Skript erfolgreich konfiguriert, um eine Zip-Distribution meiner Anwendung mit einem zusätzlichen "config" -Ordner im Stammverzeichnis zu erstellen. Dieser Ordner enthält (zumindest momentan) nur eine Eigenschaftendatei, die von der Anwendung verwendet wird, und befindet sich im Klassenpfad für die Anwendung.

Was ich jetzt suche, ist jedoch eine Möglichkeit, das Gleiche mit der 'run' Aufgabe im Anwendungs-Plugin zu tun. Wenn ich versuche, meine Anwendung auf diese Weise auszuführen (zum Testen), wird mein Programm nicht ausgeführt, weil eine Klasse versucht, auf diese Eigenschaftendatei im Stammverzeichnis des Klassenpfads zuzugreifen.

Ein Bonus wäre, wenn ich IntelliJ oder Eclipse dazu bringen könnte, auch diesen Ordner zu seinem Klassenpfad hinzuzufügen, genau wie die anderen Ordner (src / main / java, src / main / resources, ...), damit ich laufen und debuggen kann meinen Code aus der IDE heraus, ohne eine Task zu starten. Ich möchte versuchen, so viel wie möglich zu vermeiden, diesen Code an eine IDE zu binden, so dass, wenn irgendjemand an dem Projekt arbeiten muss, nur die build.gradle-Datei importiert werden muss und die IDE die entsprechenden Konfigurationsdateien benötigt .

Hier ist meine build.gradle Datei:

%Vor%

Wahrscheinlich muss ich den Ordner / src / dist / config zum Kopieren in das Erstellungsverzeichnis und zum Hinzufügen zum Klassenpfad oder zum Kopieren des Inhalts in einen Ordner verwenden, der sich bereits im Klassenpfad befindet .

    
agent154 27.05.2015, 19:21
quelle

2 Antworten

15

Ich nahm Opals Vorschlag als einen Hinweis und kam zu der folgenden Lösung. Ich habe meiner build.gradle-Datei folgendes hinzugefügt:

%Vor%

Alternativ wäre ein einfacherer Ansatz, eine Laufzeitabhängigkeit zu meinem Projekt hinzuzufügen:

%Vor%

Ich habe es jedoch nicht so gemacht, weil mein Distributionspaket .properties-Dateien im lib-Ordner hatte ... und ich bin nur so wählerisch.

    
agent154 28.05.2015 12:54
quelle
2

Wie Sie in den Dokumenten sehen können, ist run eine Aufgabe vom Typ JavaExec . So kann classpath dafür modifiziert werden. Versuchen Sie, den config Ordner zum Klassenpfad hinzuzufügen. Siehe hier .

    
Opal 28.05.2015 07:30
quelle