Wie füge ich mit gradle Konfigurationsdateien oder andere Ressourcen zu meinem JAR hinzu?
Meine Projektstruktur:
src / main / java / com / perseus / .. --- Java-Pakete (Quelldateien)
src / main / java / config / *. xml --- Spring-Konfigurationsdateien
Erwartete Glasstruktur:
com / perseus / .. --- Java-Pakete (Klassendateien)
config / *. xml --- Spring-Konfigurationsdateien
gradle
build.gradle
Pritesh Mhatre
quelle
quelle
Verschieben Sie die Konfigurationsdateien von
src/main/java
nachsrc/main/resources
.quelle
Vielen Dank, ich habe ein bestehendes Projekt nach Gradle migriert und die Idee, die Projektstruktur zu ändern, hat mir nicht so gut gefallen.
Ich habe es herausgefunden und dachte, diese Informationen könnten für Anfänger nützlich sein.
Hier ist eine Beispielaufgabe aus meinem 'build.gradle':
quelle
sourceSets.main.resources { srcDirs = ["src/main/java"]; exclude "**/*.java" }
.Standardmäßig werden alle Dateien, die Sie hinzufügen,
src/main/resources
in das JAR aufgenommen.Wenn Sie dieses Verhalten aus irgendeinem Grund ändern müssen, können Sie dies durch Konfigurieren tun
sourceSets
.Dieser Teil der Dokumentation enthält alle Details
quelle
.../resources/
anstelle des enthaltenen Ressourcen - Verzeichnis mit dem Inhalt?Ich bin auf das gleiche Problem gestoßen. Ich hatte eine PNG-Datei in einem Java-Paket und sie wurde nicht zusammen mit den Quellen in die endgültige JAR exportiert, was dazu führte, dass die App beim Start abstürzte (Datei nicht gefunden).
Keine der obigen Antworten hat mein Problem gelöst, aber ich habe die Lösung in den Gradle-Foren gefunden. Ich habe meiner
build.gradle
Datei Folgendes hinzugefügt :Gradle wird angewiesen, nach Ressourcen im
src
Ordner zu suchen und nur PNG-Dateien einzuschließen.BEARBEITEN: Beachten Sie, dass bei Verwendung von Eclipse Ihre Ausführungskonfigurationen beschädigt werden und
main class not found
beim Versuch, Ihr Programm auszuführen , eine Fehlermeldung angezeigt wird. Um dies zu beheben, habe ich nur die Lösung gefunden, die Bilderres/
beispielsweise in ein anderes Verzeichnis zu verschieben und alssrcDirs
statt festzulegensrc/
.quelle
+=
Operator verwendet, um meine Verzeichnisse zu den vorhandenen Verzeichnissen hinzuzufügen: zBsourceSets.main.resources.srcDirs += [ "src/main/java" ]
Beachten Sie, dass der Pfad unter src / main / resources mit dem Paketpfad Ihrer .class-Dateien übereinstimmen muss, die auf die Ressource zugreifen möchten. Siehe meine Antwort hier .
quelle