Maven资源过滤

一、Maven资源过滤

1、资源过滤中的资源

Maven项目资源过滤中的资源指的是位于src/main/resources文件中的相关配置文件,

2、资源拷贝

  • 在打包测试或者部署时Maven会将位于resources目录中的配置文件都复制到目标文件target/classes目录下。
  • 这个拷贝的工作是由maven resource plugin插件来完成的
  • 默认情况下该插件只是将资源进行复制,不会对资源文件做任何操作
    Maven资源过滤

3、资源过滤

资源过滤就是在将src/main/resources文件复制到target/classes目录过程中,对拷贝的资源做一些修改。
Maven资源过滤

二、Maven资源过滤应用

在配置文件中设置变量,在项目打包测试或者运行时使用Maven动态的给变量赋值:

  • 在application.properties配置文件中配置变量
  • 在pom文件中使用profile配置变量不同的值
  • 开启资源拷贝插件的过滤功能:拷贝资源时将pom中的变量设置到资源文件中。

1、资源文件中设置变量

设置spring.profiles.active的值为一个变量值${env}
Maven资源过滤

2、pom文件中配置变量值

使用profile中properties下的env来标识变量的内容
Maven资源过滤

3、开启资源过滤

pom文件中的resources下的filtering标签致为true就可以将env标签代表的变量赋值给application.properties中的spring.profiles.active
Maven资源过滤

4、使用指定变量

因为env对应的值是配置在profile里的,所以我们指定profile的id就指定了env对应的值,maven就会将对应env值赋值给applicatio.properties中的变量:

  • mvn clean package -P testing
  • maven结合profiles实现多套配置环境就是使用的这个原理