使用Maven,我想根据版本号是否为SNAPSHOT将文件中的参数更新为"true"
或"false"
。目前我使用maven-war-plugin基于Maven属性更新一些其他属性。我试图使用maven属性和maven-release-plugin,但这似乎不起作用:
Maven pom.xml:
<project>
...
<properties>
<someProperty>value</somePropery>
<isSnapshot>true</isSnapshot>
</properties>
<profiles>
<profile>
<id>release</id>
<properties>
<isSnapshot>false</isSnapshot>
</properties>
</profile>
</profiles>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp</directory>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<releaseProfiles>release</releaseProfiles>
</configuration>
</plugin>
</plugins>
</build>
</project>
运行mvn release:prepare
和mvn release:perform
似乎忽略了最终战争中被覆盖的属性。这似乎源于这样一个事实,即发布配置文件在release:perform
阶段是活动的,而不是在实际构建战争时的release:prepare
阶段。
有更好的方法可以做到这一点还是我错过了什么?
修改
我正在从一个项目pom运行这个版本,这个战争pom是一个子模块。