Maven web资源过滤SNAPSHOT版本

时间:2016-10-10 21:32:32

标签: maven maven-release-plugin

使用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:preparemvn release:perform似乎忽略了最终战争中被覆盖的属性。这似乎源于这样一个事实,即发布配置文件在release:perform阶段是活动的,而不是在实际构建战争时的release:prepare阶段。

有更好的方法可以做到这一点还是我错过了什么?

修改

我正在从一个项目pom运行这个版本,这个战争pom是一个子模块。

0 个答案:

没有答案