Ich führe ein einfaches Maven-Projekt (Maven Version 3.3.9) mit Profilen und Filterung von Ressourcen. Es scheint, dass die Filterung immer auf dem Standardprofil erfolgt.Maven filtern Ressourcen
Es gibt zwei Konfigurationsdateien in src/main/Filter (Standard): config-dev.properties und config-prod.properties, die nur eine Variable application.env = Entwicklung application.env enthält = Produktion
Und eine Ressource-Datei in src/main/resources (default) mit folgendem Inhalt:
We are working on ${application.env}
verwendet Kommandozeile ist mvn sauber Ressourcen: Ressourcen -Pprod
Die erwartete Ausgabe ist
We are working on production
Aber das gefilterte Ressource-Datei enthält
We are working on development
Maven pom Snippet wie folgt aussieht:
<build>
<finalName>test-maven-module</finalName>
<filters>
<filter>src/main/filters/config-${build.profile.id}.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
und Profile Konfiguration
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<build.profile.id>dev</build.profile.id>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<build.profile.id>prod</build.profile.id>
</properties>
</profile>
</profiles>
Beliebig suggestio n?