spring maven profile - 根据编译配置文件设置属性文件
spring maven profile - set properties file based on compilation profile
我会像这样创建一些编译配置文件:
- 配置文件名称:dev
- 配置文件名称:测试
- 配置文件名称:生产
在 src/main/resources 我有 3 个文件夹:
- dev/file.properties
- test/file.属性
- production/file.properties
每个文件包含此属性的不同值:
- my.prop.one
- my.prop.two
- my.prop.three
之后我会在 Spring 类 中设置如下内容:
@Configuration
@PropertySource("file:${profile_name}/file.properties")
public class MyConfig{
}
我该怎么办?
参见 Apache Maven Resources Plugin / Filtering and Maven: The Complete Reference - 9.3. Resource Filtering。 (Filtering 是一个不好的名字,恕我直言,因为过滤器通常会过滤一些东西 out,而我们执行 string interpolation 在这里。但事实就是如此。)
在 src/main/resources
中创建 one file.properties
,其中包含 ${...}
变量值,这些值应根据您的环境而改变。
声明默认属性(dev
的属性)并在您的 POM 中激活资源过滤:
<project>
...
<properties>
<!-- dev environment properties,
for test and prod environment properties see <profiles> below -->
<name>dev-value</name>
...
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
...
在您的 POM 中声明两个具有相应属性的配置文件:
...
<profiles>
<profile>
<id>test</id>
<properties>
<name>test-value</name>
...
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<name>prod-value</name>
...
</properties>
</profile>
</profiles>
...
只需在您的代码中使用:
@PropertySource("file:file.properties")
激活配置文件:
mvn ... -P test ...
或
mvn ... -P prod ...
我会像这样创建一些编译配置文件:
- 配置文件名称:dev
- 配置文件名称:测试
- 配置文件名称:生产
在 src/main/resources 我有 3 个文件夹:
- dev/file.properties
- test/file.属性
- production/file.properties
每个文件包含此属性的不同值:
- my.prop.one
- my.prop.two
- my.prop.three
之后我会在 Spring 类 中设置如下内容:
@Configuration
@PropertySource("file:${profile_name}/file.properties")
public class MyConfig{
}
我该怎么办?
参见 Apache Maven Resources Plugin / Filtering and Maven: The Complete Reference - 9.3. Resource Filtering。 (Filtering 是一个不好的名字,恕我直言,因为过滤器通常会过滤一些东西 out,而我们执行 string interpolation 在这里。但事实就是如此。)
在 src/main/resources
中创建 one file.properties
,其中包含 ${...}
变量值,这些值应根据您的环境而改变。
声明默认属性(dev
的属性)并在您的 POM 中激活资源过滤:
<project>
...
<properties>
<!-- dev environment properties,
for test and prod environment properties see <profiles> below -->
<name>dev-value</name>
...
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
...
在您的 POM 中声明两个具有相应属性的配置文件:
...
<profiles>
<profile>
<id>test</id>
<properties>
<name>test-value</name>
...
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<name>prod-value</name>
...
</properties>
</profile>
</profiles>
...
只需在您的代码中使用:
@PropertySource("file:file.properties")
激活配置文件:
mvn ... -P test ...
或
mvn ... -P prod ...