在windows下自动把你修改过的文件塞到指定的jar文件中

作者: nick 分类: java 发布时间: 2011-06-02 07:07 ė 6没有评论

功能简介:

aj.sh        自动把你版本库下处于checkOut状态的非java文件、java源码编译后的class文件,塞到指定的jar文件中。

aj24.sh    自动把你最近24小时内修改过的的非java文件、java源码编译后的class文件,塞到指定的jar文件中。

运行方式:

1、用文本编辑器打开aj.sh、aj24.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’ -o -name ‘*.keep’ -o -name ‘*.keep.[0-9]*’ -o -name ‘*.contrib’ -o -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

本文出自 传播、沟通、分享,转载时请注明出处及相应链接。

本文永久链接: https://www.nickdd.cn/?p=1543

发表评论

您的电子邮箱地址不会被公开。

Ɣ回顶部