dbflute成果物をjarで管理する。
プロダクトとしてではなく、ツールとしてdbfluteを使用する(Tableいっぱい編)。とそこから発展 - mokkouyou2001の日記
で書いたところから発展
Toolとして使用する場合だけではなく、
プロダクトとして利用する場合も、「開発中」には適応できるかもしれませんね。
(当然リリースもDB機能をまとめてjarにしてしまうというのも当然ありかもしれませんが。)
gensrcと、jarについては、生成担当者が管理し、
開発者はgensrcから該当部分をソースフォルダにコピーしてロジックを追加していく。
そっちはjarとしてではなく、ソースとして管理していく。(色んなひとがいじることが想定されるため。)
※切り分けとしては、allcommonとかに手を入れるような場合は、jarとして管理でもよいかも。
何よりもメリットは、
ちょっと時間がかかる処理が、jarを作る人だけに絞られる。
というのと、見通しがよくなるという点。
また、正確な計測とはいえませんが、
ソースで管理した場合、
テストとして、ConditionBean#toDisplayStringを表示するだけのメソッド実行に関して、
1分40秒かかり、
jarの場合、30秒程度で済んだりもしました。
※しつこいようですが、正確な計測とはいえません。
そのときの、ログからの割り出しです。
ただ、まぁ体感的にもその位の差はあります。
※ソースのコンパイルではなく、コンパイル後の実行に関する話です。
コンパイルは・・・orz
デメリットは、結局はいじるBhvなどを探してコピーするところ。
さらに、ついうっかり「移動」とかやらかす人がいそう
といったところでしょうか。
あとはjarもでかくなり、かつ、gensrcもソース管理するとなると容量的な問題。
(些細な問題だが)
ちなみに前述の
buildにはソースを含むようにしているが、
gensrcがあるので最悪含まなくてもよいかも。
さらに、0.7.6以降からは
torque.isSkipGenerateIfSameFile = true
と設定すると、差分なしは生成対象とならないため、
コンパイル時に差分コンパイルとなり、リソース消費を抑えられるので
積極的に利用する。