动态设定Jsp项目中引入js文件的版本

前端JS文件通常会使用CDN服务来加速访问,但在遇到文件内容更新时,就需要刷新CDN。

会出现硬编码的方式,每次都要手动修改版本,比较麻烦,且容易遗忘。

可以通过Maven打包自动注入版本来动态设置。

1、修改pom.xml文件

1.1 修改properties配置
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format> <static.version>${maven.build.timestamp}</static.version> </properties>
1.2 添加插件
<!-- 1、replacer插件:替换target目录里面的jsp占位符 -->
<plugin>
    <groupId>com.google.code.maven-replacer-plugin</groupId>
    <artifactId>replacer</artifactId>
    <version>1.5.3</version>
    <executions>
        <execution>
            <id>replace-static-version</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>replace</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <!-- 基础目录:target -->
        <basedir>${project.build.directory}</basedir>
        <!-- 匹配target/项目名下所有jsp,包含WEB-INF/jsp/** -->
        <includes>
            <!-- 可以批评所有或指定jsp文件 -->
     <include>**/*.jsp</include> <include>**/index.jsp</include> </includes> <!-- 关闭正则,纯字符串匹配,不容易踩坑 --> <regex>false</regex> <replacements> <replacement> <token>@static.version@</token> <value>${static.version}</value> </replacement> </replacements> </configuration>
</plugin> <!-- 2、war插件:打包时使用我们刚刚过滤完的 filtered-webapp --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.2</version> <configuration> <webappDirectory>${project.build.directory}/filtered-webapp</webappDirectory> </configuration> </plugin>

如果想看具体替换了哪些文件,可以调整一下配置,在
replacer插件中,使用以下配置进行替换,替换的文件会输出到webapp目录下:
<!-- 源目录:webapp源码目录 -->
<basedir>src/main/webapp</basedir>

<!-- 替换后的文件输出到这个目录,不改动src源码! -->
<outputDir>${project.build.directory}/filtered-webapp</outputDir>

2、修改jsp文件

<script src="/static/js/index.js?v=@static.version@"></script>

3、执行mvn clean package

image

    通过以上日志,可以看到替换的文件数量。

    执行后查看jar包中对应文件内的版本,会随着构建时间动态变化。✌️

posted @ 2026-09-24 19:00  Commissar-Xia  阅读(10)  评论(0)    收藏  举报