実はIDEAのディレクトリ構成が一番おかしい(その1)
最近ちょっと凝ってるディレクトリ構成ネタの各種IDE版。NetBeans,Eclipse(WTP),JDeveloper,IDEA,そしてMaven,それぞれのデフォでプロジェクトを作ったときのディレクトリ構成と,自分以外のIDEが作成したプロジェクトをマウントできるかどうかを試してみた。
#プロジェクトはWARファイルを作れるプロジェクトに限定。
まずは,プロジェクトのディレクトリ構成について。
それも(ほぼ)作成直後の構成で,下線はプロジェクト管理用,太字は各種ソース置き場,斜体は出力先を示す。太字部分は間違いなくSCMにぶち込んでいいけど,下線はビミョー。斜体はSCMにぶち込んではいけない。
NetBeans5.5の場合
「Webアプリケーション」プロジェクトの「Java BluePrintスタイル」の場合。
project/ |- build.xml |- nbproject/ |- build/ ... コンパイル先(WAR展開イメージ) |- dist/ ... WARファイルの作成先 |- src/ ... プロダクトコード置き場 | |- conf/ ... 各種リソース(とりあえず MANIFEST.MF がある) | |- java/ ... Javaソース置き場 |- test/ ... テストコード置き場 |- web/ ... Webリソース置き場 |- META-INF/ |- WEB-INF/ |- web.xml
「Jakartaスタイル」の場合は,こっち。
project/ |- build.xml |- nbproject/ |- build/ ... コンパイル先(WAR展開イメージ) |- dist/ ... WARファイルの作成先 |- conf/ ... 各種リソース(とりあえず MANIFEST.MF がある) |- java/ ... Javaソース置き場 |- test/ ... テストコード置き場 |- web/ ... Webリソース置き場 |- META-INF/ |- WEB-INF/ |- web.xml
Eclipse3.2 + WTP1.5の場合
「Dynamic Web Project」を選んだ時の構成。
project/ |- .project |- .classpath |- .settings/ |- build/ ... ソースのコンパイル先 |- src/ ... Javaソース置き場 |- WebContent/ ... Webリソース置き場 |- META-INF/ |- WEB-INF/ |- web.xml
WARファイルは,
$WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/webapps
に書き出されるみたいだ。
JDeveloper 10gの場合
「Webプロジェクト」を選んだときの構成。
project/ |- project.jpr |- deploy/ ... デプロイに関する設定情報 | |- webapp.deploy |- src/ ... Javaのソース置き場 |- public_html/ ... Webリソース置き場 |- WEB-INF/ |- web.xml |- classes/ ... ソースのコンパイル先 | |- .jsps ... JSPやタグファイルのプリコンパイル先 | |- .tags |- lib/ |- temp/
- プロジェクトは,Eclipseのワークスペースみたいなアプリケーションという場に作るのがお約束
- 実際の所,アプリケーション以外にもプロジェクトはおけるみたいなんだけど,イマイチ動作が不安定になる。
- 出力先がWebリソース置き場と兼用なのがイケてない。
- 悪いことに出力先の変更方法は見つけられなかった。
- Javaソース置き場は複数持てる。
- 名前も場所も任意に変更できる。
- 「テストコード置き場」ってのを持てないみたい。
- 試しにJUnitのテストケース作ってみたら,プロダクトコード置き場に「test」ってサブパッケージ掘って,そこに作られた。
- って,そりゃ無いだろぅ...
- Webリソース置き場の場所も名前も好きに変更できる。
- WARファイルがどこに作成されるのかは,わからずじまいだった。
IntelliJ IDEA6の場合
「Web Module」を選んだ時の構成。
project/ |- project.iml |- project.ipr |- project.iws |- classes/ ... ソースのコンパイル先 |- exploded/ ... WAR展開形式の出力先 |- project.war ... WARファイル |- META-INF/ |- resources ... Webリソース置き場 |- src/ ... Javaソース置き場 |- WEB-INF/ ... Webリソース置き場(web.xml専用) |- web.xml
Maven2の場合
archetypeArtifactIdに「maven-archetype-webapp」を選んだ時の構成。
project/ |- pom.xml |- target/ | |- classes/ ... ソースのコンパイル先 | |- project/ ... WAR展開形式の出力先 | |- project.war ... WARファイル |- src/ |- main/ | |- java/ ... Javaソース置き場 | |- resources/ | |- webapp/ ... Webリソース置き場 | |- WEB-INF/ | |- web.xml |- test/ |- java/ ... テストコード置き場 |- resources/