核心功能
压缩和混淆Javascript 和 CSS 文件
- 可用于压缩 webapp 目录 (src/main/webapp)和在jar中的js和css文件
- 压缩文件默认重命名为以-min为后缀,因此在应用中压缩版本和原始版本可以同时存在。但如果您不想保留原始文件并想覆盖它,请设置选项'nosuffix'为'true'
用法
1、最低要求
- Maven:3.0.4
- JDK:maven-compiler-plugin 版本为 2.5.1
2、在项目的pom.xml配置plugin
<project>
...
<build>
<!-- To define the plugin version in your parent POM -->
<pluginManagement>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.5.1</version>
</plugin>
...
</plugins>
</pluginManagement>
<!-- To use the plugin goals in your POM or parent POM -->
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.5.1</version>
</plugin>
...
</plugins>
</build>
...
</project>
常用配置项
- aggregations
合并文件,可以把多个小的js、css合并成一个文件
- disableOptimizations
只适用于js,禁用优化,默认为false
- encoding
读文件使用的编码格式,默认UTF-8
- excludeResources
排除resources目录下的文件
- excludeWarSourceDirectory
排除webapp目录下的文件
- excludes
排除文件,跟exclude一起使用
- failOnWarning
指定插件遇到warning时是否失败,默认false
- force
true时,强制压缩文件;false时,若存在已压缩的文件,会先对比源文件是否有改动 有改动便压缩,无改动就不压缩
- gzip
是否打包文件,默认fasle
- includes
添加额外的文件
- jswarn
只适用于js,是否显示js中可能的错误。默认true
- linebreakpos
在制定的列后面插入新行,默认-1
- nocompress
不压缩,默认false
- nomunge
只用于js。只压缩不混淆。默认false
- nosuffix
压缩后的文件没有后缀。默认false
- outputDirectory
压缩后的文件保存目录
- preProcessAggregates
在压缩前合并文件。默认false
- preserveAllSemiColons
只用于js。保留不必要的分号。默认false
- resources
想要转换的资源?
- skip
是否跳过执行。默认false
- sourceDirectory
Javascript源目录,压缩后目录在outputDirectory。${project.build.sourceDirectory}/../js
- statistics
显示统计数据(压缩比)
- suffix
压缩后的文件后缀,默认-min
- useProcessedResources
如果可用,使用已处理的资源,默认false
- useSmallestFile
使用更小的文件,当压缩文件大于原始文件时,使用原始文件作为输出。默认true
- warSourceDirectory
需要包含到war的单个目录。${basedir}/src/main/webapp
- webappDirectory
Web应用程序的目录。${project.build.directory}/${project.build.finalName}
例子
<configuration>
<!-- 读取js,css文件采用UTF-8编码 -->
<encoding>UTF-8</encoding>
<!-- 不显示js可能的错误 -->
<jswarn>false</jswarn>
<!-- 若存在已压缩的文件,会先对比源文件是否有改动 有改动便压缩,无改动就不压缩 -->
<force>true</force>
<linebreakpos>-1</linebreakpos>
<!-- 在指定的列号后插入新行 -->
<linebreakpos>-1</linebreakpos>
<!-- 压缩之前先执行聚合文件操作 -->
<preProcessAggregates>true</preProcessAggregates>
<!-- 压缩后保存文件后缀 无后缀 -->
<nosuffix>true</nosuffix>
<!-- 源目录,即需压缩的根目录 -->
<sourceDirectory>src/main/webapp/js/full_js</sourceDirectory>
<!-- 压缩js和css文件 -->
<includes>
<include>*.js</include>
</includes>
<outputDirectory>src/main/webapp/js/min_js</outputDirectory>
<!-- 以下目录和文件不会被压缩 -->
<excludes>
<exclude>min_js/*.js</exclude>
</excludes>
</configuration>