Maven资源过滤
一、Maven资源过滤
1、资源过滤中的资源
Maven项目资源过滤中的资源指的是位于src/main/resources文件中的相关配置文件,
2、资源拷贝
- 在打包测试或者部署时Maven会将位于resources目录中的配置文件都复制到目标文件target/classes目录下。
- 这个拷贝的工作是由maven resource plugin插件来完成的
- 默认情况下该插件只是将资源进行复制,不会对资源文件做任何操作
3、资源过滤
资源过滤就是在将src/main/resources文件复制到target/classes目录过程中,对拷贝的资源做一些修改。
二、Maven资源过滤应用
在配置文件中设置变量,在项目打包测试或者运行时使用Maven动态的给变量赋值:
- 在application.properties配置文件中配置变量
- 在pom文件中使用profile配置变量不同的值
- 开启资源拷贝插件的过滤功能:拷贝资源时将pom中的变量设置到资源文件中。
1、资源文件中设置变量
设置spring.profiles.active的值为一个变量值${env}
2、pom文件中配置变量值
使用profile中properties下的env来标识变量的内容
3、开启资源过滤
pom文件中的resources下的filtering标签致为true就可以将env标签代表的变量赋值给application.properties中的spring.profiles.active
4、使用指定变量
因为env对应的值是配置在profile里的,所以我们指定profile的id就指定了env对应的值,maven就会将对应env值赋值给applicatio.properties中的变量:
- mvn clean package -P testing
- maven结合profiles实现多套配置环境就是使用的这个原理