Ich habe eine Eigenschaftendatei unter src/main/resources/db.properties und jedes Mal, wenn ich den Wert ändere, muss ich den Jar neu erstellen. Gibt es eine Lösung, wo ich das nicht tun muss?Ich muss das Jar jedes Mal neu erstellen, wenn ich die Eigenschaftendatei unter src/main/resouces ändere
Antwort
Da sich die Datei in src/main/resources befindet (vorausgesetzt, das Standardlayout, das natürlich geändert werden kann), wird es in die Task processResources kopiert (siehe https://docs.gradle.org/current/userguide/java_plugin.html).
Das bedeutet, dass es Teil der JAR-Datei ist - und wenn Sie es ändern müssen, müssen Sie die JAR-Datei neu packen, wenn die Java-Anwendung die Änderung übernehmen soll. Ich sehe dort keinen Weg, außer dass die Datei von der JAR-Datei getrennt ist und über eine normale Datei-API darauf zugegriffen wird. (oder Zugriff auf den JAR-Inhalt über Zip-Tools und die Änderungen später für die Laufzeit zur Verfügung .. und Umgang mit gesperrten Dateien .. yeah, no.)
Gradle ist intelligent genug, um nicht den gesamten Build-Prozess jedes Mal, nur wenn sich die Dinge ändern.
Wenn Sie das Kompilieren manuell "überspringen" und die JAR-Datei nur neu packen möchten, müssen Sie wahrscheinlich Ihre eigenen Aufgaben zu build.gradle hinzufügen. Einfach "nur" die JAR-Task ausführen, wird dann nicht ausgeführt, da dies von der Kompilier-Task abhängt.
- 1. Warum muss ich Tomcat jedes Mal neu starten, wenn ich den Code für mein Servlet ändere?
- 2. Muss ich Sails jedes Mal neu starten/heben, wenn ich Änderungen an einem Controller vornahm?
- 3. Warum muss ich jedes Mal Kategorien oder Seiten erstellen - Wordpress.?
- 4. Warum muss ich jedes Mal die Konfiguration in Eclipse ausführen?
- 5. Muss ich jedes Mal, wenn ich Änderungen an statischen Dateien mache, ein Maven-Webapp-Projekt erstellen?
- 6. Warum muss ich das xcode-Projekt jedes Mal reinigen, wenn ich das Projekt erstelle?
- 7. Ich muss jedes Mal in Android Studio und Gradle neu erstellen
- 8. Muss ich benutzerdefinierte Listenformulare neu erstellen, wenn ich die Liste neu erstellen?
- 9. Tabfragment wird jedes Mal neu geladen ich die Registerkarte
- 10. Muss ich jedes Mal neu kompilieren, wenn ich ein neues Gerät für die Ad-hoc-Installation hinzufüge?
- 11. Muss ich jedes Mal, wenn ich ein Commit machen möchte, Dateien zu Git hinzufügen?
- 12. Verpasste Ansichten jedes Mal, wenn ich das Storyboard öffne
- 13. Wie kann ich Superfish jedes Mal neu initialisieren, wenn die Seite zurückgeschrieben wird?
- 14. Lassen Sie JFrame nicht jedes Mal neu erstellen, wenn ich den Knopf
- 15. Soll ich jedes Mal eine brandneue SqlConnection erstellen oder versuchen, eine bestehende Verbindung jedes Mal neu zu öffnen?
- 16. Zufallszahl aktualisiert nicht jedes Mal, wenn ich die Funktion
- 17. Wie kann ich eine Hibernate-Sammlung erstellen, die jedes Mal neu gelesen wird, wenn ich sie anfordere?
- 18. CUDA - muss ich jedes Mal Speicher reservieren und freigeben?
- 19. SSIS Staging-Tabelle - ok, um jedes Mal neu zu erstellen?
- 20. lpsolve - Ergebnisse sind jedes Mal anders, wenn ich die Reihenfolge der Bedingungen ändere
- 21. /dev/HAX jedes Mal fehlt ich neu starten Computer
- 22. Muss ich den Cache-Ablauf jedes Mal auf HTML setzen?
- 23. Warum muss jedes Mal das Projekt neu erstellt werden, um den Browserverlauf zu löschen
- 24. Muss ich beim Testen jedes Mal vorkompilieren, wenn ich Javascript-Dateien in Rails 3.2 anpasse?
- 25. Chrome Erweiterung ID ist neu gebaut jedes Mal, wenn ich die Erweiterung
- 26. Wie kann ich die Eigenschaftendatei von der JAR-Datei ausschließen?
- 27. Warum muss ich den Express-Server neu starten, wenn ich eine Swig-Vorlage ändere?
- 28. Wie ändere ich das Ausgabeverzeichnis von jar von sbt-Assembly
- 29. Xcode 3.1 Lokalisierung: Wenn ich die Schnittstelle ändere, muss ich das für jede Lokalisierung ändern?
- 30. Muss ich die Eigenschaften eines Fremdschlüssels manuell festlegen, wenn ich die Zuordnung ändere?
Wie läuft das JAR? Wenn die Eigenschaftendatei Teil der JAR ist, müssen Sie sie trotzdem neu packen. –
sobald das Jar von Gradle gebaut wird, ich java -jar filename.jar gerade so laufen lassen ja ich nehme an, dass es ein Teil des Glases ist. Wie packe ich es so um, dass ich das Jar nicht neu erstellen muss, wenn sich die Eigenschaftendatei ändert? – user1870400
Ich glaube nicht, dass Sie die Neuerstellung der JAR vermeiden können, obwohl Sie möglicherweise vermeiden können, Ihre Java-Quelldateien neu zu erstellen. Eine JAR ist nur ein Archiv, und wenn sich eine Komponente ändert, müssen Sie neu packen. –