一般地,我们的src/main/resources目录下有很多配置文件,比如jdbc.properties配置文件;
当编译或打包的时候,会使用插件maven-resources-plugin的resources目标,将src/main/resouces目录中的资源文件复制到了target/classess目录下;
在配置文件被复制的过程中,我们可以干预配置文件的信息,比如:
(1)复制过程中对资源文件设置字符编码;
(2)复制过程中对资源文件进行替换;
maven-resources-plugin这个插件就提供了这样的功能;
设置字符编码:
<properties>
<encoding>UTF-8</encoding>
</properties>
设置资源文件内容动态替换
资源文件中可以通过 ${maven属性} 来引用maven属性中的值,打包的过程中这些会被替换掉,替换的过程默认是不开启的,需要手动开启配置;
修改src/main/resource/jdbc.properties内容如下:
jdbc.url=${jdbc.url}
jdbc.username=${jdbc.username}
jdbc.password=${jdbc.password}
修改src/test/resource/jdbc.properties内容如下:
jdbc.url=${jdbc.url}
jdbc.username=${jdbc.username}
jdbc.password=${jdbc.password}
在pom.xml的resources中开启资源替换:
<build>
<resources>
<resource>
<!-- 指定资源文件的目录 -->
<directory>${project.basedir}/src/main/resources</directory>
<!-- 是否开启过滤替换配置,默认是不开启的 -->
<filtering>true</filtering>
</resource>
</resources>
<testResources>
<testResource>
<!-- 指定资源文件的目录 -->
<directory>${project.basedir}/src/test/resources</directory>
<!-- 是否开启过滤替换配置,默认是不开启的 -->
<filtering>true</filtering>
</testResource>
</testResources>
</build>
注意上面开启动态替换的元素是filtering;
上面build元素中的resources和testResources是用来控制构建过程中资源文件配置信息的,比资源文件位于哪个目录,需要复制到那个目录,是否开启动态过滤等信息;
resources元素中可以包含多个resource,每个resource表示一个资源的配置信息,一般使用来控制资源的复制的;
testResources元素和testResources类似,用来控制测试资源的复制;
标签:文件,jdbc,src,资源,maven,打包,resources From: https://www.cnblogs.com/healthinfo/p/17086065.html