Java で新しいプロジェクトを立ち上げる時,
という2つの方法が考えられると思います (他にもあるかも知れない).
さてどちらが良いのか.
Maven Archetype を使う
セットアップスクリプトを使う
利点
- 自由度が高い
- 例えば上に書いたコマンドライン引数に応じてファイルの出しわけをする (
--admin
オプションを付けると,管理画面用の雛形が追加されるみたいな) とかが簡単に実現できる
- 例えば上に書いたコマンドライン引数に応じてファイルの出しわけをする (
- ルールに縛られず自分の好きなように作れるので作りやすい
所感
とりあえず通常の場合は Maven Archetype を使っていくのが良いような気がします.
「Java のプロジェクトをやろう!」という人のマシンには間違いなく mvn は入っているでしょうし,なにより archetype は配布や実行が楽だからです.Maven Archetype は凝ったことをしない限り戦っていくことが可能です.
配布や実行が楽というのは本当に重要であります.この辺が面倒くさいと誰も使わないし,保守するモチベーションも死んでゆくし,その結果いくら良い雛形であっても滅亡してゆきます.ので,ここは本当に重要.
処理が重いというのはありますが,絶望的に重いわけではないのでここらへんは割り切っていきましょう.そんな頻繁に叩くものでもないので.
「Maven Archetype では無理だ!」というレベルの凝ったことをしたくなった時には独自のセットアップスクリプトを用意するくらいで良いという意識になっています.
この場合,セットアップスクリプトをどこに置くかという問題はありますが,そのあたりは GitHub Releases とか,Jenkins の成果物とか,まあいくらでもやりようはあるのかなと思っています.
(雑考: ここらへんに golang を使っていくというアプローチはどうか.ビルド済みのバイナリを然るべき場にソイヤしておくと,各位が適宜エイヤできる気がする)
archetype の作成はだるい,というのはまああるにはあるんですが,セットアップスクリプトを作る場合も結局は面倒なので,この辺は支配的な差にはならないように感じています.
Maven Archetype,最初はその風貌や名前からウッアッという感じになるんですが,慣れると何とかなります.
ひとまずこれで良いんじゃないですかね.