Ich habe folgendes pom.xml:Maven Ressource Filterung mit Profileigenschaften
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mycompany</groupId>
<artifactId>resource-fail</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<foo.bar>BazBat</foo.bar>
</properties>
<build>
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>Development</id>
<!--
<activation>
<activeByDefault>true</activeByDefault>
</activation>
-->
<properties>
<foo.bar>Development</foo.bar>
</properties>
</profile>
</profiles>
</project>
Beachten Sie, dass das activation
Element auf der profile
wird
ich in src/main/java/application.properties
folgenden haben die auch
myproperty=${foo.bar}
Also was ich Maven zu tun erwartet, ist einfach ${foo.bar}
durchersetzen 210, es sei denn, das Entwicklungsprofil activiated, dann erwarte ich Maven ${foo.bar}
ersetzen mit Development
Als ich mvn package
laufen sie den Wert auf BazBat
setzt. Gut, die Ressourcenfilterung funktioniert wie erwartet.
Allerdings, wenn ich mvn package -P Development
führen Sie es setzt den Wert auf BazBat
Dinge weiter zu verwirren, wenn uncomment das activation
Element auf dem Profil und führen mvn package
es ${foo.bar}
zu Development
Ich habe laufen sogar eingestellt werden mvn help:active-profiles package
, damit es den Namen des aktiven Profils ausgibt, und in beiden obigen Szenarien heißt es, dass das Entwicklungsprofil aktiv ist, die Filterung jedoch immer noch nicht funktioniert, ohne dass das Flag activeByDefault
gesetzt ist.
Fazit:
- Maven überschreibt richtig Eigenschaften mit Werten aus dem Profil, wenn das Profil
activeByDefault
- Maven ist nicht Überschreibung der Eigenschaft ist, wenn ich das Profil über den Schalter Befehlszeile aktivieren
Was ist los?
Meine Umgebung:
> mvn -version
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T11:29:23-06:00)
Maven home: C:\apache-maven-3.2.5
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_65\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"
Update: ich auf die neuesten Maven aktualisiert habe (3.3.3) - das Problem weiterhin besteht. Meine neue Umgebung:
> mvn -version
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T06:57:37-05:00)
Maven home: C:\apache-maven-3.3.3
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_65\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"