Maven - wo gehört eine .properties-Datei hin?

dermoritz

Bekanntes Mitglied
der Titel des Themas sagt eigentlich fast alles: wie gehe ich mit .properties-Dateien um: wo gehören sie rein und was schreibe ich dazu in die pom-Datei?
 

kama

Top Contributor
Hallo,

der übliche Platz ist unter src/main/resources bzw. für den test src/test/resources...

Es hängt aber auch davon ab, welchen packaging type Du verwendest...

Gruß
Karl Heinz Marbaise
 

dermoritz

Bekanntes Mitglied
vielen Dank für die Antwort,

meintest du eventuell "src/main/res...", denn die Datei ist für das Programm gedacht?

Was das Packaging betrifft kann ich nur auf meinen anderen Thread verweisen (Danke auch dort für die Antwort). Mich würde in erster Linie interessieren, wie man Maven mitteilt, das diese Datei ein Teil des Builds ist. So das sie nach dem kompilieren so liegt, das sie das Programm auch findet. Wie man in dem anderen Thread sieht benutze ich zum erstellen und ausliefern im Moment kein Maven und was die properties-Datei betrifft, die leigt irgendwo unter src/main und wird nach dem erstellen einfach zur jar/exe-Datei dazu kopiert.

könnte man mit maven diese Datei auch mit in das jar-File verpacken?
 

kama

Top Contributor
Hallo,

meintest du eventuell "src/main/res...", denn die Datei ist für das Programm gedacht?
Dann genau da "src/main/resources"...

Was das Packaging betrifft kann ich nur auf meinen anderen Thread verweisen (Danke auch dort für die Antwort).
Was steht in deiner POM "packaging" ?

Mich würde in erster Linie interessieren, wie man Maven mitteilt, das diese Datei ein Teil des Builds ist. So das sie nach dem kompilieren so liegt, das sie das Programm auch findet. Wie man in dem anderen Thread sieht benutze ich zum erstellen und ausliefern im Moment kein Maven und was die properties-Datei betrifft, die leigt irgendwo unter src/main und wird nach dem erstellen einfach zur jar/exe-Datei dazu kopiert.
könnte man mit maven diese Datei auch mit in das jar-File verpacken?
Das ist der Sinn die Datei(en) in src/main/resources zu legen. Dann wird die automatisch mit in die JAR Datei packetiert..(Convention over Configuration)...ok...das erscheint manchmal ein Wenig wie "Magie" ;-)..

Gruß
Karl Heinz Marbaise
 

dermoritz

Bekanntes Mitglied
und nochmal danke,

und was müsste ich machen, wenn die property-Datei separat bleiben soll (ich bin mir noch nicht sicher ober der User sie anpassen können soll)?
 

kama

Top Contributor
Hi,

die Frage ist: Was ist das für eine Anwendung ? Kommandozeile? Web-App ? (Tomcat ?)

Welche Anpassungen soll der Benutzer denn machen können ?

MfG
Karl Heinz Marbaise
 

dermoritz

Bekanntes Mitglied
ich das ganze mal probiert (siehe anderer thread) und offensichtlich wird die properties datei nicht gefunden?! ich habe die datei unter src\main\resources\Paketname. es kommt an der entsprechenden Stelle eben eine File not found exception. Wenn ich die Datei aber zur -jar Datei dazu kopiere funktioniert es.
Ist die "Konvention" eventuell die resourcen nicht mitzuverpacken? so dass man es mitteilen muss, das man sie verpacken möchte?
 

dermoritz

Bekanntes Mitglied
also auf die Property-Datei greife ich mit:
prop = new PropertyResourceBundle(new FileInputStream("meine.properties")); zu.

edit: ok es funktioniert: es lag daran, dass ich das assembly plugin auskommentiert hatte. nun hab ich jar und assembly plugin drinne und alles funzt wie ess soll.
 
Zuletzt bearbeitet:

dermoritz

Bekanntes Mitglied
esfunktioniert doch nicht. ich habe bemerkt, dass das Programm nicht die Property-Datei aus der JAr-Datei benutzt sondern die Datei die noch im Pfad der pom-Datei lag(- der aktuelle Pfad in der Konsole). Als ich die gelöscht hab gabs wieder "FileNotFoundException". Wie gesagt, in der jar-Datei ist die Property-Datei, sie wird nur nicht benutzt.

Wie sage ich Maven wo er nach Resourcen schauen soll bzw. das Maven dem Programm sagen soll, wo es nach Resourcen suchen soll? - mit dem "resource Plugin"?
 
Zuletzt bearbeitet:

mvitz

Top Contributor
Versuche es mal so:

Java:
prop = new PropertyResourceBundle(this.getClass().getClassloader().getResourceAsStream("meine.properties"));
 

kama

Top Contributor
Hi,

Java:
xyz = this.class.getResourceAsStream("/xyz.properties");
Sollte das Problem lösen...Da Du ja die Properties Datei aus der JAR Datei verwenden möchtest...und nicht die aus dem Dateisystem (FileInputStream("..."));...
Wie auch schon mvitz geschrieben hat...

Gruß
Karl Heinz Marbaise
 

dermoritz

Bekanntes Mitglied
vielen Dank!

das bedeutet aber im Umkehrschluss, dass man im Code festlegen muss ob die Properties in der jar sind oder extern - was gar kein Problem ist. Ich hatte aber kurz die Hoffnung das man das per Maven "umschalten" kann.
 

mvitz

Top Contributor
Nein muss man nicht. Sollte die Property-Datei nicht mit in das JAR gehören, muss sie einfach in den Classpath mit aufgenommen werden.

Edit: Also nicht die Datei, sondern der Ordner in dem die Datei sich befindet.
 

mvitz

Top Contributor
Solange die Datei über den Classpath auffindbar ist, ja ;) Also dazu kann sie entweder im .jar sein oder irgendwo auf der Platte (dann muss aber der ordner in dem sie sich befindet im Classpath sein).
 

dermoritz

Bekanntes Mitglied
ist der "aktuelle pfad" oder der pfad der jar-Datei automatisch im Classpath? Falls es 2 Dateien gibt(in der jar und im restlichen classpath) welche wird genommen?
 

mvitz

Top Contributor
Wenn du eine Runnable JAR hast, dann ist das JAR-File selber und alle Einträge aus dem MANIFEST.MF im Pfad. Wenn du das JAR anders startest, gibst du ja den Pfad selber an und kannst so kontrollieren, welche genommen wird.

Sollte die Datei zweimal im Pfad sein, weiß ich nicht, was passiert. Müsste man mal ausprobieren.
 

dermoritz

Bekanntes Mitglied
die frage ist ob ich irgendwas "zusätzliches" tun muss, falls ich die properties datei nicht in die jar-Packe (dafür müsste ich das assembly plugin deaktivieren, oder?) sondern sie einfach neben die jar-Datei lege.
in beiden Fälllen soll das ganze durch doppelklick auf die jar gestartet werden. und die nächste frage wäre ebend ob man eine properties-Datei quasi als default-Einstellung in die jar packen kann und der user diese Einstellungen mit einer eigenen properties-Datei einfach überschreiben kann. - also geht das alles ohne zusätzlichen code/ ohne eingreifen in die pom-datei?
 

kama

Top Contributor
Hallo,
die frage ist ob ich irgendwas "zusätzliches" tun muss, falls ich die properties datei nicht in die jar-Packe (dafür müsste ich das assembly plugin deaktivieren, oder?)sondern sie einfach neben die jar-Datei lege.
Das assembly Plugin hat nichts damit zu tuen...wenn Du die properties in src/main/resources legst wird die automatisch mit in das JAR gepackt...
Wenn Du die properties Datei daneben legen willst musst Du anders packen...

in beiden Fälllen soll das ganze durch doppelklick auf die jar gestartet werden. und die nächste frage wäre ebend ob man eine properties-Datei quasi als default-Einstellung in die jar packen kann
ja das ginge...


und der user diese Einstellungen mit einer eigenen properties-Datei einfach überschreiben kann. - also geht das alles ohne zusätzlichen code/ ohne eingreifen in die pom-datei?
Der User müsste nur den entsprechenden Aufruf der JVM mit eine classpath parameter versehen und in den angegebenen Path eben eine properties file ablegen...

Ich würde dann eher dazu tendieren einen ZIP/tar.gz erzeugen in dem alles drin liegt wie folgt:
Code:
  xyz-1.0
    +-- etc
           +--- property files
    +-- lib 
           +--- jars'
    +-- bin
           +--- batch file for starting

Da hat mir der appassembler sehr gute Dienste erwiesen...

Dann kann der User einfach im etc-Verzeichnis die Datei ändern...
Gruß
Karl Heinz Marbaise
 

dermoritz

Bekanntes Mitglied
danke kama, aber wie es so ist erzeugen gute antworten noch mehr Fragen :):

in dem anderen Thread wo es um die Ausführbare jar-Datei ging, hast du mir appasssembler oder assembly plugin empfohlen um ausführbare jar-Dateien zu erzeugen. Im Laufe des Threads hab ich dann bemerkt, dass es ohne jar-Plugin nicht funktioniert (dort habe ich auch die "Main"-Klasse angegeben).
Nun Frage ich mich welches Plugin wofür zuständig ist. Irgendeins muss ja alles zusammenpacken inkl. der Properties-Datei (das Resource -Plugin -speziell für "Resources"??, und Assembly für den Rest??). Eine ausführbare jar-Datei zu machen (jar-Plugin??)
Also welches Plugin wofür zuständig ist, ist mir noch nicht so richtig klar.


Was mein eigentliches Problem betrifft: das Feature mit den Defaulteinstellungen ist mir nicht so wichtig. Mir wäre nur wichtig wie leicht ich zwischen Properties in der jar und außerhalb(im Pfad der jar-Datei) wechseln kann. Also ob
Code:
this.getClass().getClassLoader().getResourceAsStream("meine.properties")
auch den Pfad der jar-Datei (per Doppelklick gestartet) beinhaltet. Dann könnte man ggf. eine Properties-Datei schreiben und die andere aus der jar-Datei löschen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Oneixee5 Maven deploy - per SSH Tools - Maven, Gradle, Ant & mehr 6
H Maven kein Hauptmanifestattribut Tools - Maven, Gradle, Ant & mehr 10
M Programm mit Maven erstellen und starten samt Abhängigkeiten Tools - Maven, Gradle, Ant & mehr 27
D Interne Dependencies in Maven Tools - Maven, Gradle, Ant & mehr 51
J log4j2 mit Hibernate über Maven Tools - Maven, Gradle, Ant & mehr 10
thor_norsk Maven Build Failed: kann nicht von start.spring.io generiertes Projekt auf IntelliJ IDE starten Tools - Maven, Gradle, Ant & mehr 8
H Maven JUnit5 Tests werden ignoriert Tools - Maven, Gradle, Ant & mehr 5
thor_norsk Maven Tools - Maven, Gradle, Ant & mehr 32
ExceptionOfExpectation Maven Build Failed: kann nicht von start.spring.io generiertes Projekt auf Eclipse starten Tools - Maven, Gradle, Ant & mehr 20
Ich kann Maven nicht als UmgebungsVariable hinzufügen Tools - Maven, Gradle, Ant & mehr 2
F Maven JAR Plugin Probleme Tools - Maven, Gradle, Ant & mehr 4
W Was "braucht" man denn alles? Maven, Ant, Git, ... Tools - Maven, Gradle, Ant & mehr 21
N Fehler beim Imgui mit Maven Tools - Maven, Gradle, Ant & mehr 7
M Spring Boot Maven pom.xml-Eintrag Tools - Maven, Gradle, Ant & mehr 17
Encera JavaFX und Maven funktioniert nicht Tools - Maven, Gradle, Ant & mehr 1
B maven multi module Projekt und unnötige/zusätzliche Leerzeilen Tools - Maven, Gradle, Ant & mehr 4
J Maven Konfusion Tools - Maven, Gradle, Ant & mehr 7
Tippster Maven Sqlite integrieren (Eclipse, Maven) Tools - Maven, Gradle, Ant & mehr 4
T Image kreieren mit Maven bei JavaFX und nicht modularen Jars Tools - Maven, Gradle, Ant & mehr 12
T JSON Dependencies in Maven Tools - Maven, Gradle, Ant & mehr 7
T JavaFX, Jar über Maven kreieren Tools - Maven, Gradle, Ant & mehr 2
Encera Libraries Maven Projekt hinzufügen Tools - Maven, Gradle, Ant & mehr 9
Oneixee5 Maven Phase Tools - Maven, Gradle, Ant & mehr 3
Robertop maven copy-resources nicht in WAR Datei Tools - Maven, Gradle, Ant & mehr 2
T Maven: Probleme beim Einbinden der Dependencies Tools - Maven, Gradle, Ant & mehr 9
M Mit Maven eine jar Datei bauen ohne irgendeine main Methode Tools - Maven, Gradle, Ant & mehr 1
M Mit Maven eine jar Datei Bauen ohne irgendeine main Methode Tools - Maven, Gradle, Ant & mehr 18
H Maven Maven: <mainClass>NAME?</mainClass> Tools - Maven, Gradle, Ant & mehr 13
H Maven maven-source-plugin is missing Tools - Maven, Gradle, Ant & mehr 5
M Missing Artifact on selbst gehostestes Maven Paket Tools - Maven, Gradle, Ant & mehr 8
M Error code 409 maven Tools - Maven, Gradle, Ant & mehr 5
M github + maven Fehler beim repository erstellen Tools - Maven, Gradle, Ant & mehr 1
M durch Maven wird "var" nicht gefunden Tools - Maven, Gradle, Ant & mehr 4
N Maven Intellij Maven Projekt erstell keine src Tools - Maven, Gradle, Ant & mehr 4
LimDul Maven Einzelne Unit Tests in Maven Builds skippen Tools - Maven, Gradle, Ant & mehr 3
M Maven jpackage-image wird nicht gefunden Tools - Maven, Gradle, Ant & mehr 22
M javafx wird in einem alten programm nicht bei maven gefunden Tools - Maven, Gradle, Ant & mehr 15
L Maven IntelliJ, Maven und JavaFX + SceneBuilder Tools - Maven, Gradle, Ant & mehr 23
von Spotz Maven und Spring: "Add to classpath" ? Tools - Maven, Gradle, Ant & mehr 29
Kirby.exe Projekt mit Maven kompilieren Tools - Maven, Gradle, Ant & mehr 13
P Maven Projekt Abhängigkeiten auf bekante Schwachstellen prüfen Tools - Maven, Gradle, Ant & mehr 4
H Maven dependency Problem ? Tools - Maven, Gradle, Ant & mehr 23
B Maven und Intellij Tools - Maven, Gradle, Ant & mehr 24
P Maven Test werden nicht ausgeführt . Junit . Maven . Surefire . Eclipse Tools - Maven, Gradle, Ant & mehr 12
yakazuqi Maven Eigene API mit Maven einbinden Tools - Maven, Gradle, Ant & mehr 1
M Was ist besser für den Anfang, Maven oder Gradle? Tools - Maven, Gradle, Ant & mehr 6
P Maven Wie die Maven Project version in JSP page verwenden? Tools - Maven, Gradle, Ant & mehr 2
C Maven Multi-Module Projekt Tools - Maven, Gradle, Ant & mehr 2
T Maven Warnings/Fehlermeldungen Tools - Maven, Gradle, Ant & mehr 12
T Maven und Datenbank(treiber) Tools - Maven, Gradle, Ant & mehr 13
T Maven Runnable Jar Tools - Maven, Gradle, Ant & mehr 5
T Grundlagen Maven und Git/Github Tools - Maven, Gradle, Ant & mehr 2
LimDul Maven Maven Surefire Plugin - Warnings upgrade Tools - Maven, Gradle, Ant & mehr 2
G Maven upload Tools - Maven, Gradle, Ant & mehr 0
K Maven - Parent oder Dependency? Tools - Maven, Gradle, Ant & mehr 5
B Maven Maven deploy Tools - Maven, Gradle, Ant & mehr 4
H Jenkins keine Tests gefunden - aber in Maven Tools - Maven, Gradle, Ant & mehr 30
P Mit Maven einen spezifischen Branch nach Tag-Parameter erstellen (in Jenkins-Job) Tools - Maven, Gradle, Ant & mehr 3
P Nur einen Teilbaum in Maven releasen? Tools - Maven, Gradle, Ant & mehr 7
D Cannot invoke "javafx.scene.control.MenuButton.getScene()" nach konvertierung zu maven Tools - Maven, Gradle, Ant & mehr 3
H Maven - keine Durchführung von Tests Tools - Maven, Gradle, Ant & mehr 12
H Jenkins - maven-jar-plugin - kein jar-file Tools - Maven, Gradle, Ant & mehr 38
P JavaFX jar mit Maven Tools - Maven, Gradle, Ant & mehr 9
P Maven & Intellij Modul kann nicht aufgelöst werden Tools - Maven, Gradle, Ant & mehr 12
H Eclipse JUnit erzeugt Fehler im Maven-Test Tools - Maven, Gradle, Ant & mehr 1
H Maven Anfängerproblem - No plugin found for prefix 'archetype' in the current project and in the plugin groups Tools - Maven, Gradle, Ant & mehr 25
sascha-sphw Maven vs Gradle Tools - Maven, Gradle, Ant & mehr 24
D Maven Maven und die Build-Geschwindigkeit Tools - Maven, Gradle, Ant & mehr 11
K Maven IntelliJ + Maven + JavaFX Tools - Maven, Gradle, Ant & mehr 2
J Maven Mit Maven eine ZIP Datei erstellen Tools - Maven, Gradle, Ant & mehr 0
K Maven install schlägt fehl Tools - Maven, Gradle, Ant & mehr 10
I Problem: Maven import extern Lib Tools - Maven, Gradle, Ant & mehr 3
Tom299 Maven Maven funktioniert nach Installation nicht Tools - Maven, Gradle, Ant & mehr 1
I Maven Interface hinzugefügt - Error Tools - Maven, Gradle, Ant & mehr 1
M Verständnisfrage Maven Tools - Maven, Gradle, Ant & mehr 2
S Maven installieren - "Befehl wurde nicht gefunden" Tools - Maven, Gradle, Ant & mehr 1
E Maven: Wie Abhängigkeiten analysieren? Tools - Maven, Gradle, Ant & mehr 0
E Maven Maven distributionManagement Vererbung in child POM Tools - Maven, Gradle, Ant & mehr 8
P Maven Parent- Child POMs Tools - Maven, Gradle, Ant & mehr 13
E Release Kandidaten mit Maven bauen Tools - Maven, Gradle, Ant & mehr 4
C Orderstruktur bei Libarys - Wie mit Ant oder Maven lösen? Tools - Maven, Gradle, Ant & mehr 0
G Maven, finde Dependency nicht... Tools - Maven, Gradle, Ant & mehr 2
G Maven Continious Integration mit Jenkins, Maven und Nexus - wie richtig? Tools - Maven, Gradle, Ant & mehr 1
P Maven Parent und Child Poms - dependencies Tools - Maven, Gradle, Ant & mehr 1
reibi Maven Maven + Eclipse Tools - Maven, Gradle, Ant & mehr 0
P Maven add resource Tools - Maven, Gradle, Ant & mehr 0
D [Maven Pluginentwicklung] - Plugin das nur auf Parent pom läuft Tools - Maven, Gradle, Ant & mehr 0
S Maven Maven und Auflösen von JSF EL Tools - Maven, Gradle, Ant & mehr 5
H Maven HSQLDB in den Maven lifecycle einbinden Tools - Maven, Gradle, Ant & mehr 5
S Maven Unterschiedliche Deployments mit Maven Tools - Maven, Gradle, Ant & mehr 2
S Maven buildnumber-maven-plugin / Formatproblem mit timestamp Tools - Maven, Gradle, Ant & mehr 17
P Erzeugen von WebServices mit Maven und Eclipse (external Tool) Tools - Maven, Gradle, Ant & mehr 2
aze Maven downgraden von 3.x auf 2.09 unter Linux Tools - Maven, Gradle, Ant & mehr 4
Rudolf JSF und Maven mit Eclipse Tools - Maven, Gradle, Ant & mehr 5
M Maven-Dependency kann nicht gefunden werden Tools - Maven, Gradle, Ant & mehr 2
M Maven imports aus Modulen Tools - Maven, Gradle, Ant & mehr 4
P multimodul maven in SVN Tools - Maven, Gradle, Ant & mehr 3
D [Maven] neuerdings "No plugin found for prefix ..." errors Tools - Maven, Gradle, Ant & mehr 7
C Automatisches Deployen in ein externes Maven Repository. Tools - Maven, Gradle, Ant & mehr 5
D JUnit Test in Maven fail und in Eclipse erolgreich Tools - Maven, Gradle, Ant & mehr 4

Ähnliche Java Themen

Neue Themen


Oben