Maven插件wro4j-maven-plugin压缩、合并js、css详解

1.    在pom.xml文件中,引入wro4j-maven-plugin插件

  1. <plugin>
  2. <groupId>ro.isdc.wro4j</groupId>
  3. <artifactId>wro4j-maven-plugin</artifactId>
  4. <version>${wro4j.version}</version>
  5. <executions>
  6. <execution>
  7. <id>optimize-web-resources</id>
  8. <phase>compile</phase>
  9. <goals>
  10. <goal>run</goal>
  11. </goals>
  12. </execution>
  13. </executions>
  14. <configuration>
  15. <ignoreMissingResources>false</ignoreMissingResources>
  16. <jsDestinationFolder>
  17. ${project.build.directory}/${project.build.finalName}/static/js
  18. </jsDestinationFolder>
  19. <cssDestinationFolder>
  20. ${project.build.directory}/${project.build.finalName}/static/css
  21. </cssDestinationFolder>
  22. <wroManagerFactory>
  23. ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory
  24. </wroManagerFactory>
  25. </configuration>
  26. </plugin>

2.    配置合并、压缩策略,新建文件/WEB-INF/wro.xml,例如配置内容为:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <groups xmlns="http://www.isdc.ro/wro" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://www.isdc.ro/wro wro.xsd">
  4. <group name="basic">
  5. <css>/static/css/front.css</css>
  6. <js>/static/js/jquery.js</js>
  7. <js>/static/js/jquery.paging.min.js</js>
  8. <js>/static/js/front/global.js</js>
  9. <js>/static/js/front/search.js</js>
  10. </group>
  11. <group name="custom">
  12. <css>/static/css/front.css</css>
  13. <css>/static/css/comment/comment.css</css>
  14. <css>/static/plugins/syntaxhighlighter/shCore.css</css>
  15. <js>/static/js/front/coding.js</js>
  16. </group>
  17. </groups>

3.    配置wro4j相关属性,新建WEB-INF/wro.properties,例如配置内容为:
配置属性含义参见:http://everycoding.com/coding/68.html

  1. cacheUpdatePeriod=0
  2. modelUpdatePeriod=0
  3. debug=true
  4. disableCache=false
  5. gzipResources=true
  6. ignoreMissingResources=false

此插件必须配置wro.properties。否则在执行打包命令:clean package时否则会报如下异常:
src\main\webapp\WEB-INF\wro.properties (系统找不到指定的文件。) -> [Help 1]

4.    执行maven命令:clean package 打包
我们会发现根据wro.xml配置的策略在
${project.build.directory}/${project.build.finalName}/static/js
${project.build.directory}/${project.build.finalName}/static/css的目录下生成了
basic.css、basic.js、custom.css、custom.js等合并压缩后的文件。

时间: 2024-07-30 16:31:52

Maven插件wro4j-maven-plugin压缩、合并js、css详解的相关文章

Grunt的配置及使用(压缩合并js/css)

Grunt的配置及使用(压缩合并js/css) 安装 前提是你已经安装了nodejs和npm. 你能够在 nodejs.org 下载安装包安装.也能够通过包管理器(比方在 Mac 上用 homebrew,同一时候推荐在 Mac 上用 homebrew). 安装grunt CLI npm install -g grunt-cli 依照官方的说法.grunt-cli仅仅是为了在同一台机器上安装不同的grunt版本号,那么咱们先不去管他. 在项目中使用grunt 首先须要往项目里加入两个文件:pack

第十一节:Bundles压缩合并js和css及原理分析

一. 简介 1.背景:浏览器默认一次性请求的网络数是有上限的,如果你得js和css文件太多,就会导致浏览器需要多次加载,影响页面的加载速度, MVC中提供Bundles的方式压缩合并js和css,是MVC中特有的一种优化方式. (当然现在前端也有很多基于node的工作流插件,可以合并压缩混淆js或css) 2. 原理(了解即可):核心方法ApplyTransforms,通过StreamReader不断一次一次进行读取 参考文档:https://docs.microsoft.com/en-us/a

Google Pagespeed,自动压缩优化JS/CSS/Image

Google Pagespeed,自动压缩优化JS/CSS/Image 浏览:257 发布日期:2015/07/05 分类:技术分享 关键字: Nginx Appache Pagespeed 自动压缩优化JS/CSS/Image 这个周末,把服务器的Nginx升级了下,并加入了Google Pagespeed模块 效果很明显: 页面加载的多个JS.CSS会自动合并压缩处理 发现新版本的Pagespeed能很好的发现处理用户加载的第三方JS库,如jQuery 发现新版本的lazyload_imag

Node.js npm 详解

Node.js npm 详解 一.npm简介 安装npm请阅读前辈的文章,很详细的介绍. npm的全称:Node Package Manager. (1)通俗的理解 其实从字面意思就可以理解这个产品有什么作用翻译为"Node包管理器".对,就是Node的包的一个管理工具,目前我尝试的有 下载并安装包(npm install [pkg]) 升级安装包(npm update [pkg]) 卸载安装包(npm uninstall/rm [pkg]),可以指定卸载包的版本号 - 其实这些命令很

开胃小菜——impress.js代码详解

README 友情提醒,下面有大量代码,由于网页上代码显示都是同一个颜色,所以推荐大家复制到自己的代码编辑器中看. 今天闲来无事,研究了一番impress.js的源码.由于之前研究过jQuery,看impress.js并没有遇到太大的阻碍,读代码用了一个小时,写这篇文章用了近三个小时,果然写文章比读代码费劲多了. 个人感觉impress.js的代码量(算上注释一共不到1000行)和难度(没有jQuery的各种black magic= =)都非常适合新手学习,所以写一个总结,帮助大家理解源码. 考

spark读写压缩文件API使用详解

最近研究了下Spark如何读写压缩格式的文件,主要有如下三种方式,这里以lzo方式压缩为例     /*******************old hadoop api*************************/     val confHadoop = new JobConf     confHadoop.set("mapred.output.compress", "true")     confHadoop.set("mapred.output

java 流操作对文件的分割和合并的实例详解_java - JAVA

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 java 流操作对文件的分割和合并的实例详解 学习文件的输入输出流,自己做一个小的示例,对文件进行分割和合并. 下面是代码: package com.dufy.file; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import jav

require(&#39;./expample.js).default详解

最近总碰到类似于 var a = require('./expample.js).default 这样的代码,感觉很奇葩,总结一波. 为什么会出现这个问题? import 是静态编译的,而 require 可以动态加载,也就是说你可以通过判断条件来决定什么时候去 require ,而 import 则不行,所以有时候我们会面临需要通过require 去导入一个es6模块(比如react-hot-loader官方demo :P) 当然,这只是场景之一. 前置知识 ES6 Module常用语法.譬如

grunt压缩合并js

[grunt整合版]30分钟学会使用grunt打包前端代码 grunt 准备阶段 1.nodeJs环境 2.安装grunt 实例学习:打包zepto ① package.json ② Gruntfile.js 认识Gruntdile与package.json package.json Gruntfile 合并文件 合并requireJS管理的文件 配置任务/grunt.initConfig grunt插件 grunt-contrib-unglify grunt-contrib-concat gr

Web性能优化之动态合并JS/CSS文件并缓存客户端

在Web开发过程中,会产生很多的js/css文件,传统的引用外部文件的方式会产生多次的http请求,从而加重服务器负担且网页加载缓慢,如何在一次请求中将多个文件一次加载出来?接下来给大家介绍在ASP.NET中动态合并加载多个js或css文件.原理:减少请求服务器的次数达到优化效果先给大家看一下传统引用方式和优化后的比较:1.传统引用方式(下图): 这样的引用方式将会请求5个js文件也就是5次http请求(下图): 2.我们来看看优化后(下图): 大家可以看到修改后只有一次请求,花费的时间节省了很