默认情况下maven会读取src/main/resources的资源打包到target的classes 可以通过进行修改
<build> <resources> 读取资源1--> <resource> <directory>src/main/resources1directory> resource> 读取资源2--> <resource> <directory>src/main/resources2directory> resource> resources> <plugins> <plugin> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-maven-pluginartifactId> plugin> <plugin> <groupId>org.apache.maven.pluginsgroupId> <artifactId>maven-resources-pluginartifactId> 使用默认的变量分割符即${} 可以自己定义格式--> <configuration> <useDefaultDelimiters>trueuseDefaultDelimiters> configuration> <version>3.1.0version> plugin> plugins> build>占位符替换
src/main/resources 下的yml配置文件 打包后则会默认填充
spring: profiles: active: ${spring.profiles.active} name: ${name}
定义占位符--> <properties> <java.version>1.8java.version> <name>versionname> <spring.profiles.active>prospring.profiles.active> properties> 也可以定义在profile里面 如果写在profile就是针对profile的build--> <build> <resources> <resource> <directory>src/main/resourcesdirectory> 这个配置的意思是过滤上面指定属性文件中的占位符,占位符是${变量名称}这样的形式,maven会自动读取includes配置文件,然后解析其中的占位符,使用上面pom文件中定义的属性进行替换--> <filtering>truefiltering> <includes> <include>*.ymlinclude> includes> 可用于排除某些--> --> file--> --> resource> resources> <plugins> <plugin> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-maven-pluginartifactId> plugin> <plugin> <groupId>org.apache.maven.pluginsgroupId> <artifactId>maven-resources-pluginartifactId> 使用默认的变量分割符即${} 可以自己定义格式--> <configuration> <useDefaultDelimiters>trueuseDefaultDelimiters> configuration> <version>3.1.0version> plugin> plugins> build>
多环境配置 只需要在profile定义即可
mvn clean install -Dmaven.test.skip -Denv=dev 打包后 则会填充对应的的占位符,注:profile的优先级比全局的properties定义优先级要高
<profiles> <profile> <id>devid> <activation> 没有指定变量默认激活--> <activeByDefault>trueactiveByDefault> maven打包的变量名和参数名字 如: mvn clean install -Dmaven.test.skip -Denv=dev--> <property> <name>envname> <value>devvalue> property> activation> 占位符定义--> <properties> <spring.profiles.active>devspring.profiles.active> <name>devname> properties> profile> <profile> <id>testid> <activation> 没有指定变量默认激活--> <activeByDefault>trueactiveByDefault> maven打包的变量名和参数名字 如: mvn clean install -Dmaven.test.skip -Denv=dev--> <property> <name>envname> <value>testvalue> property> activation> 占位符定义--> <properties> <spring.profiles.active>testspring.profiles.active> <name>version2name> properties> profile> <profile> <id>proid> <activation> 没有指定变量默认激活--> <activeByDefault>trueactiveByDefault> maven打包的变量名和参数名字 如: mvn clean install -Dmaven.test.skip -Denv=dev--> <property> <name>envname> <value>provalue> property> activation> 占位符定义--> <properties> <spring.profiles.active>prospring.profiles.active> <name>version3name> properties> profile>profiles>打包排除和包含文件
<build> <resources> <resource> <directory>src/main/resourcesdirectory> <includes> <include>**/*.txtinclude> <include>**/*.rtfinclude> includes> <excludes> <exclude>**/*.bmpexclude> <exclude>**/*.jpgexclude> <exclude>**/*.jpegexclude> <exclude>**/*.gifexclude> excludes> resource> <resources>build>改变输出目录