2015年06月19日 Maven plugins 浏览(755)

YUI Compressor Maven插件压缩 js、css并输出war包

YUI Compressor是一款非常强大JS混淆和压缩工具。目前很多Javascript框架都使用YUI Compressor进行了代码压缩。据说鼎鼎有名的Jquery框架也是使用YUI Compressor进行压缩。YUI Compressor压缩的好处是不仅大大减少js、css的体积,同时在对javascript代码的混淆压缩中对属性命名的替换,使得压缩过的js不易阅读,能起到源码的保护作用。本文主要介绍YUI Compressor的使用方法和技巧。

一、在Maven pom.xml文件中,添加YUI Compressor 插件。代码如下:

<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>
        <skip>false</skip>
        <!-- 读取js,css文件采用UTF-8编码 -->
        <encoding>UTF-8</encoding>
        <jswarn>false</jswarn>
        <!-- 若存在已压缩的文件,会先对比源文件是否有改动。有改动便压缩,无改动就不压缩 -->
        <force>false</force>
        <!-- <suffix>.min</suffix> -->
        <nosuffix>true</nosuffix>
        <!-- 在指定的列号后插入新行 -->
        <linebreakpos>-1</linebreakpos>
        <!-- 压缩之前先执行聚合文件操作 -->
        <preProcessAggregates>true</preProcessAggregates>
        <aggregations>
            <aggregation>
                <removeIncluded>true</removeIncluded>
                <insertNewLine>true</insertNewLine>
                <inputDir>${project.build.directory}/${project.build.finalName}/resources/static/js
                </inputDir>
                <output>${project.build.directory}/${project.build.finalName}/build/js/basic.min.js
                </output>
                <includes>
                    <include>jquery-1.7.2.js</include>
                    <include>everycoding.js</include>
                    <include>front.js</include>
                </includes>
            </aggregation>
            <aggregation>
                <insertNewLine>true</insertNewLine>
                <inputDir>${project.build.directory}/${project.build.finalName}/resources/static/css
                </inputDir>
                <output>${project.build.directory}/${project.build.finalName}/build/css/basic.min.css
                </output>
                <includes>
                    <include>common.css</include>
                    <include>front.css</include>
                </includes>
            </aggregation>
        </aggregations>
    </configuration>
</plugin>


aggregations:管理需要分类合并的Js、Css

二、使用Maven命令执行压缩:

mvn yuicompressor:compress

三、打war时,如果需要排除未压缩的js、css文件,可使用如下方法:

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-war-plugin</artifactId>
	<version>2.4</version>
	<configuration>
		<warSourceExcludes>**/*.js,**/*.css</warSourceExcludes>
	</configuration>
</plugin>

YUI Compressor官网:http://developer.yahoo.com/yui/compressor/

相关配置参数说明:http://alchim31.free.fr/mvnsites/yuicompressor-maven-plugin/compress-mojo.html




用户头像