如何读取到maven中profile设置的参数
一、介绍
在maven
工程中,我们会用到profiles
来配置不同环境的不同的参数。
我们下面介绍如何读取到在这里面设置的值
代码语言:javascript复制<profiles>
<profile>
<id>local</id>
<properties>
<host>localhost:2333</host>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>dev</id>
<properties>
<host>192.168.10.111:2333</host>
</properties>
</profile>
</profiles>
二、使用
比如说,我们有下面两个文件,example.yml
,example.txt
example:
host: ${host}
代码语言:javascript复制请注意,当前host是${host}
在我们使用maven
当做我们的包管理构建工具的时候,就可以用到里面的resources
标签,来修改我们的文件
只要正确的配置,在构建工程的时候就会修改${}
的值,如下进行配置
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/example.yml</include>
<include>**/example.txt</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
接下来就可以进行构建了,如果是在IDEA
中的话,可以在此选择对应的profile
自己命令手动构建的话,请加上-PfrofileId
,例如mvn clean package -Pdev
构建完成,我们去target
目录中看看,发现在编译完成后,相对应的占位位置的值已经发生了变化
三、最后
如何在**Java
**代码中读取?
其实在编译完成后,就可以用@Value
读取到值了。具体可以看看我的这篇文章
SpringBoot中读取配置的几种方式 | 半月无霜 (banmoon.top)
如果
${}
失效的话,请试试@@
example: host: @host@ 这是因为使用了spring-boot-starter-parent
作为父项目,里面有个属性改变了这个占位符
我是半月,你我一同共勉!!!