2011-10-26 27 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)。