前の会社の後輩で、今の会社でも後輩な、 @garaponのブログを読んでたら、 JarのDIFFをとれるZipdiffが便利 | 自分の仕事を憎むには人生は余りにも短いっていうエントリがあって。 泥臭い運用やってると↓みたいな感じでjar解凍して、
JAVA_HOME/bin/jar xvf hogehoge.jar
ファイル突っ込んだ後に↓みたいな感じでjarに固めなおしてリリース
cp /home/hoge/rerere.properties hoge/hage/ rm hogehoge.jar JAVA_HOME/bin/jar cvf hogehoge.jar *
とか、やったりやらなかったりします。 #パッチ用のディレクトリ作ってクラスパスを前にもって来るとかそういうのは置いといてw そんな時に、ZIPDIFFでサクっと確認してからやれたら便利だな、と。 ZIPDIFFのsourceforgeのサイト(http://zipdiff.sourceforge.net/)から、 Downloadリンクを経て、最新版(っていってもModifiedは2004年とかだけどw)の0.4を取得します。 落としてくると、readmeとかソースとかbuild.xmlとかあるんだけど、 とりあえず使いたいモノはbuildディレクトリの中にないっている、 ・commons-cli-1.0.jar ・zipdiff.jar です。これをSCPなりなんなりしてサーバに持ってって、そこで、 ↓のように叩いてやります。 (アウトプットはHTMLとかも指定できる)
JAVA_HOME/bin/java -cp commons-cli-1.0.jar -jar zipdiff.jar -file1 リリース前のjar -file2 リリースするjar -outputfile アウトプット.txt
結果を見てみると、あー、コレで大丈夫そうだねーとか感触がつかめます。
> cat アウトプット.txt 3 files were added to リリースするjar [added] jp/co/hoge/hage/xxx.class [added] jp/co/hoge/hage/yyy.class [added] jp/co/hoge/hage/rerere.properties 0 files were removed from リリース前のjar 3 files changed [changed] META-INF/hoge/hage.xml ( size 12439 : 12436 ) [changed] hogehoge.dicon ( size 5112 : 5198 ) [changed] jp/co/hoge/hage/XXX.class ( size 5744 : 6209 ) Total differences: 6
こんな事しなくてイイように~ってのはもちろんあるんですが、 イザって時の引き出しとして、こういうの持ってると便利ですよね。 Antのタスクとして実行する事も出来ちゃったりするみたいです。