请参阅Apache Maven 资源插件/过滤和Maven:完整参考 - 9.3。资源过滤。(过滤是一个坏名字,恕我直言,因为过滤器通常会过滤掉一些东西,而我们在这里执行字符串插值。但就是这样。)
创建一个 包含应根据您的环境更改的值的变量的变量file.properties
。src/main/resources
${...}
声明默认属性(那些 for 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 ...