Natural

           

          [shell]在windows下自動把你修改過的文件塞到指定的jar文件中

          功能簡介:

          aj.sh        自動把你版本庫下處于checkOut狀態的非java文件、java源碼編譯后的class文件,塞到指定的jar文件中。

          aj24.sh    自動把你最近24小時內修改過的的非java文件、java源碼編譯后的class文件,塞到指定的jar文件中。


          運行方式:

          1、用文本編輯器打開aj.shaj24.sh,更改以下幾個變量:

          jar_file  指定jar文件的完整路徑(注意路徑分隔符一律用/

          bin_dir   指定class所在的bin完整路徑

          src_dir   指定源碼所在的src完整路徑

          2、打開cygwin,進入腳本文件所在的目錄,運行如下命令:

          sh aj.sh

          sh aj24.sh

           

          ps

          指定cygwin打開時的默認路徑:

          新建一個環境變量HOME,設置為腳本文件所在的目錄。

          這樣可以更加方便、快速地運行腳本。

          路徑分割符用‘/,磁盤符用cygdrive表示。eg d:\shell      ——》    /cygdrive/d/shell


          環境依賴:

          JDK/JRE

          Cygwin

          cywin安裝:進入下載頁http://cygwin.com/install.html,將“setup.exe”下載到本地運行,一路默認即可。

          安裝參考文檔:http://goo.gl/eXfzx

          cygwin常用命令及find命令說明

           


          缺陷:

          1、            如果你修改的是需要轉義的中文資源文件,需要自己去轉義后再覆蓋過去。

          2、            如果你修改的是java文件中的非內部類,也需要手動去找到該class類,再塞到jar文件去。

           

           

          腳本文件:

           

          aj.sh (將第16行注釋掉,第17行去掉注釋,即為“aj24.sh”)

           1 #!/bin/sh
           2 # Auto zip the files which are checked out or modified to the target jar file.
           3 
           4 # Note: use '/' as separator in directory
           5 # target jar file
           6 jar_file='G:/demo.jar'
           7 
           8 
           9 # bin directory of compiled class files
          10 bin_dir='D:/workspace/demo/bin'
          11 
          12 # src directory of source files
          13 src_dir='D:/workspace/demo/src'
          14 
          15 
          16 condition='-perm 644'
          17 #condition=' -mtime 0'
          18 c_j=0
          19 c_nj=0
          20 c_c=0
          21 function count_javaFiles
          22 {
          23     let "c_j=$c_j + 1"
          24 }
          25 function count_nonJavaFiles
          26 {
          27     let "c_nj=$c_nj + 1"
          28 }
          29 function count_classFiles
          30 {
          31     let "c_c=$c_c + 1"
          32 }
          33 
          34 function inspectZip
          35 {
          36     local fileName=$1
          37     local dir_pre=$2
          38     local line
          39     local list
          40     local myDir_pre
          41     cd $bin_dir
          42     list=` find . -name "${fileName}[$.]*class" `
          43         
          44 for line in $list
          45 do
          46     myDir_pre=${line%/*}
          47     if [ $myDir_pre = $dir_pre ]
          48     then
          49         jar -uvf $jar_file $line
          50         count_classFiles
          51     fi
          52 done
          53 }
          54 
          55 function easyZip
          56 {
          57     local file=$1
          58     jar -uvf $jar_file $file
          59     count_nonJavaFiles
          60 }
          61 
          62 cd $src_dir
          63 list=`find . -type f $condition ! \-name '*.java' --name '*.keep' --name '*.keep.[0-9]*' --name '*.contrib' --name '*.contrib.[0-9]*' \)`
          64 for line in $list
          65 do
          66     easyZip $line
          67 done
          68 
          69 list=`find . -type f $condition -name '*.java' `
          70 for line in $list
          71 do
          72     dir_pre=${line%/*}
          73     fileName=`echo ${line##*/} | cut -d '.' -f1`
          74     
          75     inspectZip $fileName $dir_pre
          76     count_javaFiles
          77 done
          78 
          79 
          80 echo "non-java files: $c_nj"
          81 echo "java files: $c_j"
          82 echo "class files: $c_c"
          83 echo "total files:  $[$c_nj + $c_c]"
          84 

          posted on 2011-06-02 11:52 此號已被刪 閱讀(2398) 評論(1)  編輯  收藏 所屬分類: JAVALinux

          評論

          # re: [shell]在windows下自動把你修改過的文件塞到指定的jar文件中 2011-06-20 11:22 秦焜

          這個非常有用!  回復  更多評論   

          導航

          統計

          常用鏈接

          留言簿(8)

          隨筆分類(83)

          隨筆檔案(78)

          文章檔案(2)

          相冊

          收藏夾(7)

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 汝州市| 简阳市| 德昌县| 沁源县| 青海省| 酒泉市| 江都市| 始兴县| 沧州市| 泌阳县| 泸溪县| 岚皋县| 汤阴县| 伊川县| 连城县| 丰都县| 青海省| 宜良县| 封开县| 上犹县| 平和县| 河北区| 弥渡县| 修武县| 土默特右旗| 乐陵市| 龙胜| 公安县| 桦川县| 望谟县| 苏尼特左旗| 北川| 潢川县| 武定县| 柏乡县| 襄城县| 宜良县| 泾川县| 武威市| 曲沃县| 临猗县|