如何同时使用maven-replacer-plugin和maven-assembly-plugin插件

页面css和js缓存是前端常见的问题,maven有专门的插件maven-assembly-plugin可以处理

参考https://blog.csdn.net/weixin_34336292/article/details/91979174

当同时使用了assembly和replacer时,有些需要注意的地方,记录一下

assembly插件fileSets代码如下:

<fileSets>
        <fileSet>
            <directory>${basedir}/target/classes</directory>
            <outputDirectory>WEB-INF/classes/</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>${basedir}/src/main/webapp/</directory>
            <outputDirectory>/</outputDirectory>
        </fileSet>
    </fileSets>

修改为如下即可

<fileSets>
        <fileSet>
            <directory>${basedir}/target/classes</directory>
            <outputDirectory>WEB-INF/classes/</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>
                ${project.build.directory}/${project.build.finalName}
            </directory>
            <!--需要排除的内容-->
            <excludes>
                <exclude>/WEB-INF/classes/**</exclude>
                <exclude>/WEB-INF/lib/**</exclude>
            </excludes>
            <!--需要包含的内容-->
            <includes>
                <include>/WEB-INF/web.xml</include>
                <include>/WEB-INF/views/**</include>
                <include>/resources/**</include>
                <include>/index.jsp</include>
            </includes>
            <outputDirectory>/</outputDirectory>
        </fileSet>
    </fileSets>

原理:

原始配置是将源代码src/main/webapp/ 复制到打包war文件中,但是我们现在需要的页面(ftl或jsp等)是replacer插件替换后的文件,不在src目录,因此需要使用target下的文件。

替换后的${project.build.directory}/${project.build.finalName}是target下的打包临时文件夹,里边包含已经编译的classes和lib等,这些需要排除,因此使用excludes标签.

/WEB-INF/*下是替换后的页面文件和其他web资源等,是我们需要的,因此需要使用includes引入。

研究要点:比较原始打包和修改后的打包文件,一定要包含所有需要的文件及文件夹(以及classes文件和lib文件)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值