博客 / 詳情

返回

一個通用自動處理 js版本號和css 版本號、自動壓縮 js,css、自動清理網頁註釋工具

jcv-maven-plugin



簡介

jcv-maven-plugin是一個自動為網頁添加js css的版本號maven插件

  • 支持js css的自動壓縮,支持多種方法版本號添加,在使用時對代碼0入侵,不需要在頁面上做任何標記,對開發友好,不需要調整現在代碼.直接引入mvn中配置,會自動對打包的頁面進行處理.

  • 該插件自動採集文件的md5值進行文件版本號修訂,在使用文件的md5值用於該文件的版本號,因此該插件不會引發js css緩存全部失效(因此不建議使用時間戳的方式),同時修改的內容又能及時到客户瀏覽器中去,不會在存在緩存的問題.

  • 支持清理網頁上的<!-- -->註釋,讓網頁更乾淨.

  • 所有的操作都不會修改代碼,只會對打包文件進行修改.文件名md5的方式可以解決有些瀏覽器忽略version標籤.

  • 目前該插件以發佈到mvn中央倉庫,可以座標引用使用.

  • 添加通用支持,不論php等其他語言也同樣可以使用,使用詳細見sh/start.sh

項目地址

https://github.com/byzy/jcv-m...

下載地址

https://github.com/byzy/jcv-m...

Quick Start

引入maven依賴

<plugin>
    <groupId>com.iqarr.maven.plugin</groupId>
    <artifactId>jcv-maven-plugin</artifactId>
    <version>0.0.6</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>MD5_METHOD</globaJsMethod>
            <globaCssMethod>MD5_METHOD</globaCssMethod>
            <!-- 壓縮js-->
            <compressionJs>true</compressionJs>
            <!-- 壓縮css-->
            <compressionCss>true</compressionCss>
        </configuration>
</plugin>

配置war插件

     <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  ,**/*.js,**/*.css-->
            <!--在使用普通的模式的時候需要配置jsp html -->
            <warSourceExcludes>**/*.html,**/*.jsp</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 clean package
# 注意該插件不會在eclipse中生效,在package後才會生效

新版本特性

version 0.0.6

  1. 優化整個壓縮流程.

  2. 修復部分bug

  3. 添加通用模塊支持,支持對php等其他語言處理.

  4. 添加常量名稱支持.

注意事項

  1. 不支持 ../../xxx.js

  2. 不支持 ../../xx.css

  3. 如果啓用js壓縮,那麼在js中變量定義禁止使用js關鍵字

  4. html 清除註釋只支持網頁中的<!-- -->

  5. 插件不會在eclipse中生效,在package後才會生效

  6. 注意在使用md5文件名的時候請注意排除一些js動態加載css,如果修改了文件名會導致無法加載到css,因此需要排除掉,目前已知有kindeditor,layer,My97DatePicker

  7. js css文件編碼必須utf-8

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.