美文网首页
maven-resources-plugin注意

maven-resources-plugin注意

作者: Nzkalhbxx | 来源:发表于2023-05-11 17:02 被阅读0次

    maven-resources-plugin为官方提供的用于资源文件拷贝,占位符转换等功能的插件。

    在pom文件中,project/build/resources/resource用于指定需要拷贝和转换的配置文件。不写的话默认的资源文件位置为pom文件所在文件夹下的src/main/resources文件夹下所有的文件。当执行资源文件拷贝时,会将资源拷贝到target/classes下,与类文件同一级目录。

    project/build/resources/resource/directory为自定义配置的资源文件目录,如为src/main/resources,这个是maven的默认值。resources标签下可以提供多个resource,用于配置多个资源目录。project/build/resources/resource/excludes/exclude用于排除指定的文件/文件夹,如<exclude>dev/ </exclude> <exclude>test/ </exclude> <exclude>prod/ </exclude>,此时配置的目录dev必须是相对于resource/director中的目录,否则失效。配置了exclude后,该资源文件将不会被拷贝到target/classes以及打包的包中。
    也可以指定只导入某些资源文件,使用project/build/resources/resource/includes/include来设置只导入哪些资源文件。

    如果想要拷贝的资源文件的占位符被自动占位,必须将project/build/resources/resource/filtering设置为true。在资源文件中可以直接使用${参数名}或@参数名@的格式设置占位。maven可以自动解析pom文件下properties/自定义标签 的值。也可以解析指定的.properties配置文件中的值(稍后介绍)。

    maven解析占位时如何通过读取指定的.properties文件来为资源文件占位?可以通过project/build/filters/filter配置的指定资源文件来获取占位值。如<filter>src/main/resources/dev/conf.properties</filter>,其中conf.properties有spring.redis.port=6379。那么在资源文件中,如application.properties中就可以直接使用xxx=@spring.redis.port@ 来获取指定配置文件中的值。

    在多环境中,project/profiles/priofile可以配置多个,每个profile必须有唯一id,project/profiles/priofile/id,在project/profiles/priofile中可以配置properties/自定义标签,在pom文件以及资源文件中可以直接读取(前提是该profile为当前激活的环境)。通过profile,就可以通过指定的profile id来打包指定的包了。如在project/profiles/priofile/properties有自定义的标签<env.name>dev</env.name>,那么在project/build/filters/filter中就可以使用如<filter>src/main/resources/${env.name}/conf.properties</filter>来获取指定配置文件,然后为其他资源文件占位。

    相关文章

      网友评论

          本文标题:maven-resources-plugin注意

          本文链接:https://www.haomeiwen.com/subject/ymvssdtx.html