Maven过滤资源

时间:2016-04-22 15:07:44

标签: maven filtering profile

我正在运行一个简单的maven项目(maven版本3.3.9),其中包含配置文件并过滤资源。似乎过滤总是在默认配置文件中完成。

src / main / filters中有2个配置文件(默认):config-dev.properties和config-prod.properties只包含一个变量 application.env =发展 application.env =生产

src / main / resources(默认)中的资源文件,包含以下内容:

We are working on ${application.env}

使用的命令行是     mvn clean resources:resources -Pprod

预期输出

We are working on production

但过滤后的资源文件包含

We are working on development

Maven pom片段看起来像:

<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>

和个人资料配置

<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>

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我在帖子Eclipse + maven : profile ignored

上找到了解决方案

问题在于使用“使用本机挂钩或轮询刷新”选项(首选项&gt;一般&gt;工作空间&gt;使用本机挂钩刷新)。取消选中此选项可解决问题。