# Maven resources properties



## evil_one (9. Sep 2009)

Hallo Leute,

ich habe mal eine allgemeine Frage zu Maven und Property Dateien.
Ich möchte mir eine kleines tool schrieben welches seine Konfiguration aus einer Property Dateien zieht.
Jetzt habe ich erst vor 2 Monaten mich mit Maven beschäftigt und habe festgestellt, da gibt es ja auch einen resources Ordner der speziell für solche Property Dateien gedacht ist.
Also lege ich meine Property Dateien in dieses Verzeichnis.

Nun meine Problem: wenn ich diese Datei jetzt laden möchte muss ich da den kompletten Pfad angeben? Ich meine wofür legt man diese Dateien extra in das Standard Verzeichnis?


----------



## maki (9. Sep 2009)

> Nun meine Problem: wenn ich diese Datei jetzt laden möchte muss ich da den kompletten Pfad angeben?


Nein, man lädt sie als Ressourcen über den Classloader: Smartly load your properties - JavaWorld


----------



## evil_one (10. Sep 2009)

Hm das heißt ich muss da nicht mehr den Pfad angeben wenn ich das über den Classloader mache.
Na mal schauen.

Das hat also alles in allem nichts mit Maven zu tun?


----------



## maki (10. Sep 2009)

Nein, hat nix mit Maven2 an sich zu tun.

Es ist nur guter Stil (und bei Maven Konvention), dass man man Java Klassen und andere Ressourcen trennt, dasselbe gilt für Testklassen und Testressourcen.


----------



## evil_one (10. Sep 2009)

OK gut...
Also die Trennung erfolgt durch den resources Ordner von Maven.
Wenn Maven nun schon diesen Ordner anbietet muss das ja auch einen Hintergrund haben.
Meine Frage nun welchen... ? Immerhin wird dieser Ordner ja auch mit in den Buildpath eingebunden. Auf die Properties zugreifen kann ich aber nur mit ./src/main/resources/programm.properties.

Oder verstehe ich gerade allgemein etwas nicht?


----------



## maki (10. Sep 2009)

> Oder verstehe ich gerade allgemein etwas nicht?


Das glaube ich auch... 



> Also die Trennung erfolgt durch den resources Ordner von Maven.


Ja.



> Wenn Maven nun schon diesen Ordner anbietet muss das ja auch einen Hintergrund haben.
> Meine Frage nun welchen... ?


Ähm.. genau das hatte ich doch bereits erklärt...



> Auf die Properties zugreifen kann ich aber nur mit ./src/main/resources/programm.properties.


Dann machst du etwas falsch!
[c]programm.properties[/c] sollte reichen, ist ja im default package.

Frage:
- Welches Maven Plugin für deine IDE nutzt du?


----------



## evil_one (10. Sep 2009)

Ich verwende Eclipse mit m2eclipse als Plugin.

Also liegt es wahrscheinlich daran das ich das Programm einfach über Eclipse debugge bzw ausführe.
Nur Maven kennt dann wahrscheinlich den Pfad des Resource Verzeichnisses.


----------



## maki (10. Sep 2009)

Nö, würde mal sagen dass etwas in deiner Konfig nicht stimmt, probier mal:
Rechtsklick aufs Porjekt -> m2 Maven -> Update Projekt configuration


----------



## evil_one (10. Sep 2009)

gut ok das haben ich gemacht.
Stehe aber immer noch vor diesen Problem.

```
Properties properties = new Properties();
try {
/* Das geht nicht */properties.load(new FileInputStream("duemerge.properties"));
/* Das geht */properties.load(new FileInputStream("./src/main/resources/duemerge.properties"));
} catch (IOException e) {
    System.out.println("Properties konnten nicht gelesen werden!");
}
```


----------



## maki (10. Sep 2009)

Du hast den Link aber schon gelesen den ich hier als erstes gepostet hatte, oder?:autsch:


----------



## evil_one (10. Sep 2009)

arg...
Wer lesen kann ist klar im Vorteil... :-( Ok Sorry


----------

