Maven 3 verschiedene profile - Frühling propertyPlaceHolderConfig nicht verwenden können Wert von pom-Datei
Ich habe einige Probleme mit maven 3 und erste laden rechts .Eigenschaften-Datei.
Was ich erreichen möchte ist Folgendes: Mit mvn -Plocal ich möchte zum laden der Einstellung-lokale.Eigenschaften, und wenn seine Ausführung mit prod möchte ich zum laden der Einstellungen-prod.Eigenschaften.
Es arbeitet mit mvn -Denv=local, aber wenn ich versuche mit die -Plocal die Variablen nicht geladen werden (Einstellungen-${env}.Eigenschaften nicht vorhanden).
Meine pom.xml:
<profiles>
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env>local</env>
</properties>
</profile>
</profiles>
In meiner Datei ApplicationContext ich haben möchten, laden Sie die env-variable:
<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:settings-${env}.properties
</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders">
<value>true</value>
</property>
</bean>
Also was ist das problem, sollte es nicht in beide Richtungen funktionieren?
- Sodala, damit ich endlich herausgefunden was das problem war in meinem Beispiel. Ich hatte ein @ - annotation in der Anwendungs-Kontext, also selbst wenn ich in den filtern hat es nicht funktioniert, bis ich entweder entfernt, die Beschriftungen oder escaped string mit maven.apache.org/plugins/maven-resources-plugin/examples/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, Sie sind verwirrend Spring PropertyPlaceholderConfigurer mit Maven ' s Filtern Mechanismus. Diese sind ähnlich, aber komplett separate Mechanismen (aber Sie können auch zusammen verwendet werden).
Spring PropertyPlaceholderConfigurer können Sie erwerben Werten aus einer properties-Datei für den Einsatz im Spring application context.
Maven die Filterung ermöglicht das ersetzen von Werten in text-Dateien (einschließlich properties-Dateien) mit den Werten aus Ihrem Maven-properties und Umgebung.
Können Sie Sie kombinieren, aber dann wird es ein zwei-Stufen-Prozess. Ihre Maven-build nutzt die Filterung zu setzen Werte in den properties-Dateien und dann wiederum diese gelesen werden können, bis zum Frühjahr. Verwirrt? (Ich bin)
Maven-Projekt-Eigenschaften sind nicht Eigenschaften von System, also das wird nicht funktionieren, out of the box.
Eine Sache, die Sie tun können, ist die Verwendung Maven Resource Filtering zu ersetzen, Eigentum Schlüssel im Spring-Kontext-Datei. Oder, noch besser, eine Eigenschaft, die Datei, die Sie filter und Referenz, die vom Frühjahr.