您可以使用maven來實現。特別使用resource filtering。
首先,你可以定義配置文件的列表:
<profiles>
<profile>
<id>dev</id>
<properties>
<env>development</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault> <!-- use dev profile by default -->
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<env>production</env>
</properties>
</profile>
</profiles>
然後你需要過濾的資源:
<build>
<outputDirectory>${basedir}/src/main/webapp/WEB-INF/classes</outputDirectory>
<filters>
<filter>src/main/filters/filter-${env}.properties</filter> <!-- ${env} default to "development" -->
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
然後你的自定義屬性基礎上src/main/filters
目錄中的配置文件:
filter-development.properties
# profile for developer
db.driver=org.hsqldb.jdbcDriver
db.url=jdbc:hsqldb:mem:web
和
filter-production.properties
# profile for production
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/web?createDatabaseIfNotExist=true
使用生產配置文件,您可以使用mvn clean package -Pprod
命令打包戰爭。
Here您可以在maven中看到使用配置文件的示例項目。
謝謝。這看起來有希望。我現在看看示例項目。 –
這很可能是被接受的答案。它似乎也將與JRebel一起工作。 –
在一個多模塊項目中,我想我需要在除父級以外的所有poms中複製它,對吧? –