ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

classファイル単位のリリースは厳しい

多くのJavaに携わる人が知っているように、final定数が参照元に埋め込まれてしまうという最適化(?)のために、ソースは修正していなくても、フルコンパイルするとclassファイルが変わってしまうということがあります。
そんなわけで、素直にJarに固めてリリースすればいいのでは?とか思ったりするのだが、どうもそこの風習的にダメらしい。なんでダメって分かっている風習をいつまでも引きずるのかなぁ。まあ、そのルールを決めたの声がデカイか、改善するような風習がないのかも知れませんが。
そんなわけで、緊急で打ち立てられた対策が、コンパイル前後でclassファイルを全比較するということで、そんな非効率なことを!を一瞬思ったのですが、Windows用diffコマンドを用意してあげたら、簡単に出来てしまいました。
(なんかいっつもこのページを探してる気がするので、ブックマークさせてもらいました。)
http://www.fsci.fuk.kindai.ac.jp/kakuto/soft.html
バイナリファイルをdiffにかけると、差があるときに「AとBの間に差があるよ」と教えてくれるので、そもそも修正したファイルの一覧と、この差があるよリストを比較して、一致していればOK。差があるよリストの方がファイルが多ければ、なんだかclass変わってしまっているclassファイルがあるっていうことだったりします。
いままでやってた人に聞いたら、何にも対策せずに障害出してたんだそうな。なんか頭悪いなぁ。しかしまあ、根本的にはこの悪しき習慣をなんとかした方が良いよね。