jcv-maven-plugin是一个自动为网页添加js.css的版本号工具,支持多种方法版本号添加,采集文件的md5值进行文件版本号修订,这个可以在每次更新的时候只修改以修改文件的版本号,防止全部js缓存失效,目前该插件以发布到mvn中央仓库,可以坐标引用使用.
<plugin>
<groupId>com.iqarr.maven.plugin</groupId>
<artifactId>jcv-maven-plugin</artifactId>
<version>0.0.3</version>
<executions>
<execution>
<id>process</id>
<phase>package</phase>
<goals>
<goal>process</goal>
</goals>
</execution>
</executions>
<configuration>
<baseJsDomin>
<param>http://script.iqarr.com</param>
</baseJsDomin>
<baseCssDomin>
<param>http://style.iqarr.com</param>
<param>http://script.iqarr.com</param>
</baseCssDomin>
<!--需要处理文件后缀-->
<suffixs>
<param>html</param>
<param>jsp</param>
</suffixs>
<!--清理页面注释-->
<clearPageComment>true</clearPageComment>
<globaJsMethod>MD5FileName_METHOD</globaJsMethod>
<globaCssMethod>MD5FileName_METHOD</globaCssMethod>
<!-- 压缩js-->
<compressionJs>true</compressionJs>
<!-- 压缩css-->
<compressionCss>true</compressionCss>
</configuration>
</plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory>
<encoding>${build.source.encoding}</encoding>
<!--如果使用md5文件名 就必须排除相应的js css -->
<!--在使用普通的模式的时候需要配置jsp html -->
<warSourceExcludes>**/*.html,**/*.jsp,**/*.js,**/*.css</warSourceExcludes>
<webResources>
<resource>
<directory>${basedir}/src/main/webapp/js/common</directory>
<includes>
<include>config.js</include>
</includes>
<filtering>true</filtering>
<targetPath>js/common</targetPath>
</resource>
</webResources>
</configuration>
</plugin> mvn package
# 注意该插件不会在eclipse中生效,在package后才会生效
outputDirectory
- 输出文件目录
- 默认
${project.build.directory}
webappDirectory
- webapp目录
- 默认值:
${basedir}/src/main/webapp
suffixs
- 检查文件的后缀
- 默认
jsp - 参数:
<suffixs>
<param>html</param>
<param>jsp</param>
</suffixs>baseJsDomin
- 基本js域名,在使用
<script src="proxy.php?url=http%3A%2F%2Fscript.iqarr.com%2Fjs%2Fjquery%2Fjquery%2F1.8.3%2Fjquery.js"></script>这种方式需要配置 - 参数:
<baseJsDomin>
<param>http://script.iqarr.com</param>
</baseJsDomin>baseCssDomin
- 基本css域名,在使用
<link rel="stylesheet" type="text/css" href="proxy.php?url=http%3A%2F%2Fstyle.iqarr.com%2Fcss%2Fpublic.css%3F" />这种方式需要配置 - 参数:
<baseCssDomin>
<param>http://style.iqarr.com</param>
</baseCssDomin>globaJslPrefixPath
- 全局js path路径
globaCsslPrefixPath
- 全局css path路径
globaJsMethod
-
全局js版本号使用方法(单个参数)
-
TIMESTAMP_METHOD时间戳方式: 该方式生成为打包时间的时间戳(不建议使用),会在最后添加?
versionLable=值 -
MD5_METHODmd5做为版本号:会在最后添加?
versionLable=md5值 -
MD5FileName_METHOD
md5文件名方式:该方式会将js文件替换为该文件的md5
globaCssMethod
- 参考globaJsMethod方式
webRootName
- 最终项目名称
- 默认值:
${project.build.finalName}
-
versionLable- 版本号标签:
- 默认:
version
-
sourceEncoding- 文件编码
- 默认:
UTF-8
-
clearPageComment- 清除页面注释,该注释为html
<!-- -->标准注释的清除 - 默认:
false
- 清除页面注释,该注释为html
-
outJSCSSDirPath- 在使用md5文件名时候使用数据全修改文件后的文件目录(不配置就默认替换当前的文件位置)
-
compressionCss- 清除css注释,并清理换行
- 默认:
false
-
compressionJs- 清除css注释,并清理换行
- 默认:
false
-
userCompressionSuffix- 压缩文件后缀
- 默认: min
-
excludesJs- 排除js文件(只支持全路径匹配)
<excludesJs>
<param>js/dome.js</param>
</excludesJs>-
excludesCss- 排除css文件(只支持全路径匹配)
<excludesCss>
<param>css/dome.css</param>
</excludesCss>-
yuiConfig- 配置压缩选项
<yuiConfig>
<!-- 禁止优化(默认false) -->
<disableOptimizations></disableOptimizations>
<!-- 只压缩, 不对局部变量进行混淆(默认true) -->
<nomunge></nomunge>
<!-- 保留所有的分号(默认true) -->
<preserveSemi></preserveSemi>
<!-- 显示详细信息(默认false) -->
<verbose></verbose>
</yuiConfig>-
braekFileNameSuffix- 跳过文件名后缀(后缀之前的名称),例如: ok.min.js 如果想跳过就需要配置
.min - 默认:
.min
- 跳过文件名后缀(后缀之前的名称),例如: ok.min.js 如果想跳过就需要配置