wro4j:Java Web资源压缩

wro4j是一个Web资源优化工具。众所周知,到服务器加载一个大的文件比加载两个小的文件快,因为会增加HTTP交互的次数并且大部分浏览器在任何时候对于同一个服务器,只保持两个连接。开发wro4j项目的目的是减少加载一个页面的请求次数和传输的数据量.

WRO4j最大限度地减少和压缩CSS和JavaScript等web资源,WRO4j可以在编译时配置一个非常有用的API - 与适当的maven插件一起运行时。
有两种办法使用,一个在运行时混合,一个是使用Maven编译时混合。

运行时混合:
第一步在web.xml加入wrofilter:

<filter><filter-name>WebResourceOptimizer</filter-name><filter-class>ro.isdc.wro.http.WroFilter</filter-class></filter><filter-mapping><filter-name>WebResourceOptimizer</filter-name><url-pattern>/wro/*</url-pattern></filter-mapping>

第二步在WEB-INF 目录下配置一个wro.xml文件,如下:

  <groups xmlns="http://www.isdc.ro/wro"><group name="all"><css>/asset/*.css</css><js>/asset/*.js</js></group></groups>      

在页面使用:
<link rel="stylesheet" type="text/css" href="/wro/all.css" />

这种方式会耗费一些服务器CPU。

编译时混合,使用Maven,需要多Maven熟悉:
wro.xml文件如下

<?xml version="1.0" encoding="UTF-8"?>
<groups xmlns="http://www.isdc.ro/wro"><group name="javaonly-base-scripts"><js minimize="false">/scripts/jquery-1.6.1.min.js</js><js minimize="false">/scripts/jqXMLUtils.pack.js</js><js minimize="false">/scripts/cufon/cufon-yui.js</js><js minimize="false">/scripts/cufon/font.js</js><js minimize="false">/scripts/cufon/replace.js</js></group><group name="javaonly-scripts"><js>/scripts/scriptFile1.js</js><js>/scripts/scriptFile2.js</js>  </group><group name="javaonly-debugging"><js minimize="false">/scripts/scriptDebug1.js</js><js minimize="false">/scripts/scriptDebug1.js</js></group><group name="javaonly-styles"><css>/styles/screen/base.css</css><css>/styles/screen/layout.css</css><css>/styles/screen/content.css</css><css>/styles/screen/menu.css</css><css>/styles/screen/footer.css</css><css>/styles/screen/login.css</css><css>/styles/screen/tooltip.css</css> <css>/styles/screen/homepage.css</css></group>
</groups>
</pre>

然后在pom.xml中增加wro4j插件:“

<plugin><groupId>ro.isdc.wro4j</groupId>
<artifactId>wro4j-maven-plugin</artifactId>
<version>${wro4j.version}</version>
<executions><execution>
<id>optimize-web-resources</id><phase>compile</phase><goals><goal>run</goal></goals></execution></executions><configuration><ignoreMissingResources>false</ignoreMissingResources>
<jsDestinationFolder>
${project.build.directory}/${project.build.finalName}/scripts/wro/</jsDestinationFolder>
<cssDestinationFolder>
${project.build.directory}/${project.build.finalName}/styles/wro/</cssDestinationFolder><wroManagerFactory>
ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory</wroManagerFactory></configuration>			    
/plugin>

最后我们在页面可以得到最小化的资源,如:

<link rel="stylesheet" type="text/css" href="/wro/javaonly-styles.css" />