SpringBoot使用Maven打包编译时修改配置文件中变量(一)
程序员文章站
2022-06-13 20:54:11
...
有这样一个需求:项目根目录下的多个Module中有同一个变量,修改时要挨个去改,非常容易出错,能不能把它个集中到一起定义一个统一变量呢?当然是可以的,maven-resources-plugin插件很简单地实现了这个功能,步骤如下:
一、在pom的properties下新增一个变量 my.demo.content
<my.demo.content>test22222</my.demo.content>
二、在pom文件的build的plugins下新增如下plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>default-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>target/classes</outputDirectory>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>
<delimiter>@</delimiter>
</delimiters>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources/</directory>
<filtering>true</filtering>
<includes>
<include>**/*.yml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
注意此处的点位符定义的是@:<delimiter>@</delimiter>
三、my.demo.content的使用方法
在application.yml中定义一个变量 aaa@qq.com@
-
-
四、执行 mvn clean install , 进入target查看编译好的文件application.yml,发现已经变成了想要的结果
-
-
为避免出错,献上Git源码地址:https://github.com/wangfei0904306/maven-global-properties
上一篇: SpringMVC拦截器