Zugang maven-Projekt-version in der Spring config-Dateien
Möchte ich die Anzeige der aktuell Laufenden version meiner web-Anwendung in die Seite. Das Projekt basiert auf Maven, Spring und Wicket.
Ich würde gerne irgendwie den Wert von maven ist ${project.version}
und verwenden Sie es in meinem spring-XML-Dateien, die ähnlich wie die Art, wie ich die Feder PropertyPlaceholderConfigurer Lesen einer property-Datei für die Einstellungen, die ich benutze in meiner Anwendung.
Wenn ich das maven project.version
erhältlich als eine variable in meine Feder config, die ich tun könnte etwas wie diese:
<bean id="applicationBean" class="com.mysite.web.WicketApplication">
<property name="version"><value>${project.version}</value></property>
</bean>
Wie kann ich dies tun?
InformationsquelleAutor Tauren | 2010-10-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Maven filtern wie bereits vorgeschlagen.
Oder Sie können einfach Lesen Sie die
pom.properties
Datei erstellt von Maven unter META-INF-Verzeichnis direkt mit dem Frühling:und Verwendung der Bohne.
Der einzige Nachteil des späteren Ansatzes ist, dass die
pom.properties
erstelltpackage
phase Zeit (und wird nicht da sein, während, sagen wir,test
).toller link, beinhaltet genau das, was ich brauchte. Zeigt, wie die einschließen-und ausschließen-filtern für verschiedene Ressourcen, im Gegensatz zu der getting-started-guide verlinkt von @Derek. Auch vielen Dank für die alternative, aber die Filterung funktioniert der trick ganz gut.
Wo ist die Linie gehen soll?
InformationsquelleAutor Pascal Thivent
Eine Technik wäre, die Nutzung Kenner filtern. Sie können Platzhalter in Ressource-Dateien wie die dann ersetzt mit den Werten aus dem bauen, während die Ressource phase.
Look up "Wie kann ich den filter resource-Dateien?" im Maven getting started guide
InformationsquelleAutor drekka
Verwenden Sie die @PropertySource Anmerkung zum hinzufügen von pom.Eigenschaften-Datei erstellt durch Maven in der META-INF-Verzeichnis. Beachten Sie, dass die Datei nicht vorhanden ist, bis die Paket phase. Um Fehler zu vermeiden, während der Prüfung der ignoreResourceNotFound=true und fügen Sie einen Standardwert für die Eigenschaft gelesen wird (z.B. keine unten).
InformationsquelleAutor tzolov
Implementieren wir die Eigenschaft Dateien außerhalb des web-app. Die Dateien können dann gefiltert werden, zum Zeitpunkt der Bereitstellung.
Wenn mit Steg kann man die Datei unter $JETTY_HOME/Ressourcen oder verwenden Sie die extraClassPath Funktion zum laden der property-Datei zur Laufzeit.
InformationsquelleAutor Mond Raymond
Ich denke, der richtige Weg sammeln die version der Anwendung ist die eine erklärt in diesem thread: https://stackoverflow.com/a/2713013/840635 durch
getClass().getPackage().getImplementationVersion()
.InformationsquelleAutor Carlos