Eclipseのおすすめプロジェクト設定
jfluteおすすめの 新しいプロジェクト作ったらやっておこう設定 を紹介します。
Propertiesの開き方
プロジェクト設定は、Properties という名前で設定画面が用意されています。
Propertiesの設定画面は、Package Explorer上のプロジェクトを選択して alt + enter で開きます。
ここで設定された内容は、基本的に .settingsディレクトリに保存されます。
エンコーディングと改行コードの固定化
テキストエンコーディングと改行コードをよく使う値 (UTF-8, LF) に固定化しましょう。 プロジェクト設定にすることで、複数人で開発していても同じ設定でテキストファイルを修正することができます。
- テキストエンコーディング
- Resource の Text file encoding を UTF-8 に
- (新規ファイルの)改行コード
- Resource の New text file line delimiter を Unix (LF) に
Inherit from container は、ワークスペースの設定を引き継ぐというオプションで、デフォルトになっています。 ただ、ワークスペースの設定はOS環境や個人個人によって設定が変わってしまう可能性があります。 (例えば、いまMacでUTF-8だとしても、windowsの人だとMS932になります)
なので同じ値だとしても気にせず、Other: でしっかりプロジェクト設定を明示します。
DBFluteスタイルのコードフォーマッター
Eclipseには、ソースコードを自動整形する機能(フォーマッター)が備わっています。
DBFluteスタイルの紹介
ただ、Eclipseのデフォルトのフォーマット定義は使いづらいので、DBFluteが提供するフォーマット定義を入れましょう。 (DBFluteスタイルと言ってもDBFluteの実装とは直接関係なく、どのプロジェクトでも利用できます)
- 横幅はデフォルトの80文字を140文字に (80は短すぎてすぐに改行されてしまう)
- コメントの中はフォーマットしない (コメントは自然言語なので定型的なフォーマットが向かない)
- Stream APIなどで長いメソッドチェーンのときは縦に並ぶようにしている
- などなど
フォーマット定義のImport
以下のURLから、DBFluteスタイルのフォーマット定義xmlをダウンロードしましょう。
dbflute-eclipse-code-formatter.zip
そして、プロジェクトの Properties の Java Code Style - Formatter を開きます。
Enable project specific settings にチェックを付けて、Import... を押してフォーマット定義xmlを選択すると反映されます。 (Active profile: に DBFlute Style と表示されていればOKです)
保存すると自動フォーマットされるように
フォーマッターのショートカットを覚えている人も少ないので、ファイルが保存されたら (command+S 押されたら) 自動的にフォーマットされるようにしましょう。
今度は、プロジェクトの Properties の Java Editor - Save Actions を開きます。
Enable project specific settings にチェックを付けて、Perform the selected actions on save にチェックを付けて、Format source code にチェックを付けます。 (Format all lines の方を選択)
ついでですが、Organize imports にチェックを付けておきましょう。import文も保存時に自動的に整理整頓されるようになります。
これで、ApplyすればOKです。
.settings自体のgitignore設定
.settings配下のファイルは、通常gitのコミット対象になります。共有したい設定なので修正が入ればそのままコミットしましょう。
ただ、.settingsの中には、プラグインが自動で出力しながらも個々のPC環境によって内容が若干変わる(ちょい残念な)設定ファイルが混じることがあります。
なので、.settingsディレクトリ配下に、お決まりの.gitignoreを置いています。
e.g. .settingsディレクトリの.gitignoreファイル @Directory
.settings
|-.gitignore
|-org.eclipse.core.resources.prefs
|-org.eclipse.core.runtime.prefs
|-...
e.g. .settingsディレクトリの.gitignore設定 @Config
.jsdtscope
org.eclipse.wst.*
org.eclipse.m2e.core.prefs
org.eclipse.buildship.core.prefs