使用minify-maven-plugin,压缩或合并你的js文件

https://github.com/Dreampie/minify-maven-plugin  的flyway-maven-plugin插件:

目前刚刚发布第一个版本1.0:

<minify-maven-plugin.version>1.0</minify-maven-plugin.version>

使用方式:

maven配置文件pom.xml里配置

<plugin>
        <groupId>cn.dreampie</groupId>
        <artifactId>minify-maven-plugin</artifactId>
        <version>${minify-maven-plugin.version}</version>
        <configuration>
          <sourceDirectory>${basedir}/src/main/webapp/javascript</sourceDirectory><!--js源文件目录-->
          <outputDirectory>${basedir}/src/main/webapp/javascript/min</outputDirectory><!--压缩后的js文件输出目录-->
          <outputFile>${basedir}/src/main/webapp/javascript/${project.artifactId}-${project.version}.min.js</outputFile><!--merge合并true的时候,所有js文件合并成一个文件-->
          <merge>false</merge><!--merge是否合并文件-->
        </configuration>
      </plugin>

该版本支持jdk1.5+,如果不启动项目运行插件,执行命令 cn.dreampie:minify:1.0:minify  或者使用ide相应的快捷键,同样可以执行压缩或合并js



https://github.com/Dreampie?tab=repositories 目录下有多款插件:

cn.dreampie.flyway-maven-plugin     https://github.com/Dreampie/flyway-maven-plugin    flyway-maven数据库升级插件

cn.dreampie.coffeescript-maven-plugin     https://github.com/Dreampie/coffeescript-maven-plugin    coffeescript-maven插件

cn.dreampie.lesscss-maven-plugin     https://github.com/Dreampie/lesscss-maven-plugin    lesscss-maven插件

cn.dreampie.jfinal-shiro     https://github.com/Dreampie/jfinal-shiro    shiro插件

cn.dreampie.jfinal-shiro-freemarker   https://github.com/Dreampie/jfinal-shiro-freemarker    shiro插件实现的freemarker标签库

cn.dreampie.jfinal-web     https://github.com/Dreampie/jfinal-web   相关web插件,简洁model实现

cn.dreampie.jfinal-utils        https://github.com/Dreampie/jfinal-utils   部分jfinal工具

cn.dreampie.jfinal-tablebind        https://github.com/Dreampie/jfinal-tablebind   jfinal的table自动绑定插件,支持多数据源

cn.dreampie.jfinal-flyway      https://github.com/Dreampie/jfinal-flyway   数据库脚本升级插件,开发中升级应用时,使用脚本同步升级数据库或者回滚

cn.dreampie.jfinal-captcha      https://github.com/Dreampie/jfinal-captcha   基于jfinal render的超简单验证吗插件

cn.dreampie.jfinal-quartz       https://github.com/Dreampie/jfinal-quartz   基于jfinal 的quartz管理器

cn.dreampie.jfinal-sqlinxml      https://github.com/Dreampie/jfinal-sqlinxml   基于jfinal 的类似ibatis的sql语句管理方案

cn.dreampie.jfinal-lesscss       https://github.com/Dreampie/jfinal-lesscss   java实现的lesscsss实时编译插件,可以由于jfinal

cn.dreampie.jfinal-coffeescript     https://github.com/Dreampie/jfinal-coffeescript   java实现的coffeescript实时编译插件,可以由于jfinal 

cn.dreampie.jfinal-akka    https://github.com/Dreampie/jfinal-akka   java使用akka执行异步任务

cn.dreampie.jfinal-mailer       https://github.com/Dreampie/jfinal-mailer   使用akka发布邮件的jfinal插件

cn.dreampie.jfinal-slf4j     https://github.com/Dreampie/jfinal-slf4j   让jfinal使用slf4j的日志api

部分内容借鉴了网络资料


转载于:https://my.oschina.net/Dreampie/blog/346077

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven本身并不提供对JS文件进行压缩的功能,但可以通过使用插件来实现。其中比较常用的是maven-minify-plugin和yuicompressor-maven-plugin两个插件。 maven-minify-plugin是一个通用的插件,支持对多种类型文件进行压缩,包括CSS、JS、HTML等。使用该插件需要在pom.xml中添加如下配置: ``` <build> <plugins> <plugin> <groupId>com.samaxes.maven</groupId> <artifactId>minify-maven-plugin</artifactId> <version>1.7</version> <executions> <execution> <id>minify-js</id> <phase>process-resources</phase> <goals> <goal>minify</goal> </goals> <configuration> <charset>UTF-8</charset> <jsSourceDir>${project.basedir}/src/main/webapp/js</jsSourceDir> <jsSourceFiles> <jsSourceFile>script1.js</jsSourceFile> <jsSourceFile>script2.js</jsSourceFile> </jsSourceFiles> <jsFinalFile>${project.build.directory}/minified/js/scripts-min.js</jsFinalFile> <jsEngine>CLOSURE</jsEngine> </configuration> </execution> </executions> </plugin> </plugins> </build> ``` 其中,`jsSourceDir`指定JS文件所在的目录,`jsSourceFiles`指定要压缩JS文件,`jsFinalFile`指定压缩后输出的文件路径,`jsEngine`指定使用压缩引擎,可以选择CLOSURE、YUI等。 yuicompressor-maven-plugin是一个专门针对YUI压缩引擎的插件,使用该插件需要在pom.xml中添加如下配置: ``` <build> <plugins> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>yuicompressor-maven-plugin</artifactId> <version>1.5.1</version> <executions> <execution> <phase>process-resources</phase> <goals> <goal>compress</goal> </goals> </execution> </executions> <configuration> <nosuffix>true</nosuffix> <linebreakpos>10000</linebreakpos> <force>true</force> <excludes> <exclude>**/*.min.js</exclude> </excludes> <aggregations> <aggregation> <insertNewLine>true</insertNewLine> <output>${project.build.directory}/minified/js/scripts-min.js</output> <includes> <include>**/*.js</include> </includes> </aggregation> </aggregations> </configuration> </plugin> </plugins> </build> ``` 其中,`nosuffix`指定是否在文件名后添加.min后缀,`linebreakpos`指定行长度,`force`指定是否强制覆盖已存在的文件,`excludes`指定不压缩文件,`aggregations`指定需要压缩文件列表和输出路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值