Maven がリソースを Java ソースとは別の「ソース フォルダー」に保存するのはなぜですか?
私の経験から言うと、JavaではリソースファイルはJavaソースファイルのように扱われ、コンパイルされるとクラスと一緒にそのままコピーされ、最終的にjarにパッケージ化されて、クラスローダーのメソッドgetResource
/ getResourceAsStream
、 経由classpath
。
個人的には、リソース ファイルを Java ソースから分離しておくのは無駄な複雑さだと思います。
- どう思いますか?
- Maven がリソースをソースから分離しておくのには、何か理由があるのでしょうか?
- Maven を使用せずにリソースを保持し
src/main/resources
、使用しないことに何か反対の兆候はありますか?src/test/resources
src/main/java
src/test/java
ベストアンサー1
まだ言及されていない点の 1 つは、Java ソースのみを含むプロジェクトを見ることに慣れているということです。ただし、他のソース ファイル タイプを追加すると、構成がよりわかりやすくなると思います。例:
- ソース/メイン
- リソース
- ジャワ
- グルーヴィー
各サブディレクトリには特定のファイル分類があります。
- java -> java ファイルとしてコンパイルされたもの
- groovy -> groovy スクリプトとしてコンパイルされたもの
- リソース -> 何にでも使用されるコンパイルされていないデータ... (また、コンパイル時の情報を追加するためにフィルタリングされる場合もあります)
また (すでにコメントで述べたように)、私は通常、リソース ディレクトリをフラットにしません。ファイルは、パッケージのような構造にネストされるか、必要に応じて他のサブディレクトリにネストされます (私の組織感覚による)。