maven资源文件打包过程

一般地,我们的src/main/resources目录下有很多配置文件,比如jdbc.properties配置文件;

当编译或打包的时候,会使用插件maven-resources-pluginresources目标,将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类似,用来控制测试资源的复制;

posted on 2023-02-02 15:01  companion  阅读(243)  评论(0编辑  收藏  举报