2016-04-22 107 views
0

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

有在src /主/过滤器2的配置文件(默认):config-dev.properties和config-prod.properties仅包含一个可变 application.env =发展 application.env =生产

而与此内容的src/main /资源(默认)的资源文件:使用

We are working on ${application.env} 

命令行是 MVN清洁能源:资源-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> 

任何suggestio N +

回答

0

我发现后Eclipse + maven : profile ignored

的问题是与使用的解决方案“刷新使用本机钩或轮询”(使用本地钩首选项>常规>工作空间>刷新)选项。取消选中此选项可解决问题。