2011-10-26 31 views
0

我需要在我的最后战争的一些东西部署:Maven的多轮廓在WEB-INF/classes中

我在src /主/资源多配置文件文件的情况:

configuration.properties (local) 
configuration.dev.properties 
configuration.production.properties 

所以,我希望当例如'-Production'被执行时,文件configuration.production.properties被拷贝到dir WEB-INF/classes的war中,并且被重命名为'configuration.properties'。我怎么弄到的?

感谢

随机化

回答

2

我不会这样做。

相反,我将有一个单一的configuration.properties,持有的占位符不同取决于配置文件中的值:

numberOfThreads=${config.numberOfThreads} # depends on the profile 
foo=bar #doesnt depend on the profile 

然后使用,以取代预留的资源插件的过滤功能

filter-dev.properties : 
    config.numberOfThreads=2 
filter-prod.properties : 
    config.numberOfThreads=16 
在你的POM

现在:

<profile> 
    <id>dev</id> 
    <properties> 
    <env>dev</env> 
    </properties> 
</profile> 
<profile> 
    <id>prod</id> 
    <properties> 
    <env>prod</env> 
    </properties> 
</profile> 

<filters> 
    <filter>src/main/filters/filter-${env}.properties</filter> 
</filters> 

<resources> 
    <resource> 
    <directory>src/main/resources</directory> 
    <filtering>true</filtering> 
    </resource> 
</resources> 
与实际值从轮廓提取
+0

谢谢它工作正常! – Randomize

0

你为什么不进行过滤。只有一个文件的名称和你做:

http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html 

<resources> 
    <resource> 
    <directory>src/main/resources</directory> 
    <filtering>true</filtering> 
    </resource> 
</resources> 
+0

已经尝试过,但不起作用。顺便说一句,我不知道如何重命名文件使用资源 – Randomize

0

资源可以包括在每个配置文件的基础,我想,如果你会被环境/配置文件组他们来说,这将是更优雅:

<build> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <excludes> 
       <exclude>commons-logging.properties</exclude> 
      </excludes> 
     </resource> 
     <resource> 
      <directory>${env.resources.dir}</directory> 
     </resource> 
    </resources> 
[...] 
</build> 
<profiles> 
    <profile> 
     <id>local</id> 
     <properties>     
      <env.resources.dir>src/test/resources</env.resources.dir> 
      [...] 

我还不知道的是,如果我可以根据个人资料包含来源(please help out if you can:D)。