使用yuicompressor-maven-plugin压缩js及css文件

使用yuicompressor-maven-plugin压缩js及css文件使用yuicompressor-maven-plugin压缩js及css文件

大家好,又见面了,我是你们的朋友全栈君。

本文介绍通过使用yuicompressor-maven-plugin插件实现js及css代码的自动压缩,方便集成到持续集成环境中,如jenkins。

一、配置yuicompressor-maven-plugin

在pom文件中增加该插件的定义,示例如下:

<plugin>        <groupId>net.alchim31.maven</groupId>        <artifactId>yuicompressor-maven-plugin</artifactId>        <version>1.3.0</version>        <executions>            <execution>                <goals>                    <goal>compress</goal>                </goals>            </execution>        </executions>        <configuration>            <encoding>UTF-8</encoding>        <!-- 忽略 js 错误警告 -->            <jswarn>false</jswarn>            <nosuffix>true</nosuffix>            <linebreakpos>-1</linebreakpos>            <includes>                <include>js/**/*.js</include>                <include>css/**/*.css</include>            </includes>            <excludes>                <exclude>**/**min.js</exclude>                <exclude>js/ba/**/*.js</exclude>            </excludes>        </configuration></plugin>


1、execution表示执行的操作,可以指定操作在maven的哪个生命周期运行,不同的生命周期对打包操作会有影响,如配置在compile阶段运行压缩:

<executions>
        <execution>
        <phase>compile</phase>
            <goals>
                <goal>compress</goal>
            </goals>
        </execution>
    </executions>

2、经验证发现该插件运行时所在的位置是项目编译打包的输出路径,比如项目名称为abc,当前文件夹应为project_root/target/abc。maven在打包的时候会把所有编译的文件、webapp下的文件复制到该目录中为打包做准备。

3、include节点用于配置需要压缩的文件路径,可以使用通配符,*表示一个文件或路径名,**表示多个文件或路径名,exclude节点用于配置排除压缩的文件路径,exclude只会排除include中设置的路径下的文件或路径。

二、配置maven-war-plugin

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
            <warName>${artifactId}</warName>
            <warSourceExcludes>js/**/*.js,css/**/*.css</warSourceExcludes>
        </configuration>
    </plugin>

在配置过程中发现无论将phase设置为哪个阶段,最终打包的文件总是原始文件,并未被压缩,后来测试发现maven-war-plugin会自动把webapp目录下的文件复制到输出路径,因此可以通过warSourceExcludes配置排除复制,的文件或路径,如上例中指定排除js目录下的所有js文件,css目录下的所有css文件。

三、常见错误

压缩js文件时,如果代码中包含debugger,yuicompressor会认为其为保留关键字,注释或删除可以使打包正常进行,也可以使用eval(‘debugger’)替换debugger。

[ERROR] …\src\main\webapp\js\Scroll.js:line 371:column 11:identifier is a reserved word debugger;

[ERROR] …\src\main\webapp\js\Scroll.js:line 1:column 0:Compilation produced 1 syntax errors.

四、相关资料

插件主站地址:http://alchim.sourceforge.net/yuicompressor-maven-plugin/

插件配置参数:http://alchim.sourceforge.net/yuicompressor-maven-plugin/compress-mojo.html#resources

配置示例:http://www.myexception.cn/operating-system/427170.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161204.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 最大公约数(Greatest Common Divisor)

    最大公约数(Greatest Common Divisor)

    2022年1月12日
    39
  • phpwind升级php7,【原创文章】升级phpwind为https「建议收藏」

    phpwind升级php7,【原创文章】升级phpwind为https「建议收藏」闲来无事,看到刀客城和金刀客博客还是http协议,浏览器总是提示不安全,对于有点强迫症的我来说,看不下去,正好今天有点时间,就整了一下。phpwind好像没多少人用了,但是对于一个简单的坛子来说够用了,升级为https也挺简单,只是一开始没有找到路。首先到https://cloud.baidu.com/申请免费ssl证书,一个地址可以申请3个免费Symantec域名型DV证书。然后传到服务器…

    2022年9月20日
    1
  • springcloud详细教程_史上最简单的画

    springcloud详细教程_史上最简单的画SpringCloudBus将分布式的节点和轻量的消息代理连接起来。这可以用于广播配置文件的更改或者其他的管理工作。一个关键的思想就是,消息总线可以为微服务做监控,也可以作为应用程序之间相互通讯。本文要讲述的是用AMQP实现通知微服务架构的配置文件的更改。一、准备工作本文还是基于上一篇文章来实现。按照官方文档,我们只需要在配置文件中配置spring-cloud-starter-bus-amq

    2025年7月26日
    4
  • pytorch(8)– resnet101 迁移学习记录

    pytorch(8)– resnet101 迁移学习记录一、前言本篇记录使用pytorch官方resnet101实现迁移学习,迁移学习是当前深度学习领域的一系列通用的解决方案,而不是一个具体的算法模型。Pre-training+fine-tuning(预训练+调参)的迁移学习方式是现在深度学习中一个非常流行的迁移学习方式,有以下3步(1)把预训练模型当做特征提取器:TensorFlow或者Pytorch都有ImageNet上预训练好的模型,将最后一层全连接层(原始的是1000个类别或者更多)改成你自己的分类任务的种类进行输出,或…

    2022年10月6日
    2
  • MySQL与php时间戳与日期格式的相互转换[通俗易懂]

    MySQL与php时间戳与日期格式的相互转换[通俗易懂]文章来自:源码在线https://www.shengli.me/php/336.html  

    2022年6月21日
    31
  • idea社区版免费吗_intellij idea community edition

    idea社区版免费吗_intellij idea community edition背景#t#v2m”K2R!E’V#d5Y:n,B.q5H#c2v-F%K#u0o#p;n6m”m&b作为一个java企业开发者,现在IntelliJIDEA付费版的激活方法越来越难找。即使找到了,过段时间也会激活失效。付费版是费用对我的现在情况来说还是太贵:按年付费,很多功能都没用到。3e/@9K,}0g8H&I这让我…

    2025年12月8日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号