使用yuicompressor
来源:互联网 发布:云计算的成功案例 编辑:程序博客网 时间:2024/05/18 02:38
本文介绍通过使用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
<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 使用yuicompressor
- 使用yuicompressor
- yuicompressor - 使用教程
- phpstorm中使用yuicompressor
- 安装及使用yuicompressor
- js压缩工具 yuicompressor 使用教程
- 使用yuicompressor 压缩js, CSS
- 使用yuicompressor 压缩js, CSS
- 自制批处理,使用批处理和yuicompressor给js打包
- 自制批处理,使用批处理和yuicompressor给js打包
- 使用yuicompressor-maven-plugin合并压缩js和css
- 安装及使用YUICompressor(压缩JS,CSS文件)4
- 使用yuicompressor.jar对js/css文件代码压缩
- Maven使用yuicompressor-maven-plugin打包压缩css、js文件
- 使用yuicompressor-maven-plugin压缩js及css文件
- 使用yuicompressor-maven-plugin压缩js及css文件
- yuicompressor用法
- 安装并使用yuicompressor压缩工具用户压缩js和css文件
- 【shell】$0 $? $* $@
- 产品经理是什么
- libxml2交叉编译问题及解决办法
- Oracle中TO_DATE格式
- 纯虚函数--抽象类中的this到底指的是哪个子类实例呢
- 使用yuicompressor
- 【Android UI设计与开发】第13期:顶部标题栏(四)自定义ActionBar风格和样式
- ubuntu12.04下安装vmware失败的记录
- C语言数学函数ceil(), floor(), round()
- Symbian学习--按键事件
- 使用SQLServer 2008的CDC功能实现数据变更捕获
- MS Sqlserver 2000 transaction log shrink step
- epoll使用详解(精髓)
- BAE设置wordpress固定链接教程