修改默认读取资源地址

默认情况下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>
改变输出目录