YUI Compressor Maven

吕俊才
2023-12-01

核心功能

压缩和混淆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>				

转载于:https://my.oschina.net/killnull/blog/1824455

 类似资料:

相关阅读

相关文章

相关问答