我是靠谱客的博主 悦耳咖啡豆,这篇文章主要介绍如何同时使用maven-replacer-plugin和maven-assembly-plugin插件,现在分享给大家,希望可以做个参考。

页面缓存是前端常见的问题,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文件)

最后

以上就是悦耳咖啡豆最近收集整理的关于如何同时使用maven-replacer-plugin和maven-assembly-plugin插件的全部内容,更多相关如何同时使用maven-replacer-plugin和maven-assembly-plugin插件内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部