yano3nora
7/2/2017 - 12:28 PM

[dev: eclipse note] IDE といったら Eclipse だよね。 #dev

[dev: eclipse note] IDE といったら Eclipse だよね。 #dev

OVERVIEW

eclipse.org

Eclipse は IBM によって開発された統合開発環境 ( IDE ) の一つ。高機能ながらオープンソースであり、Java をはじめとするいくつかの言語に対応する。Eclipse 自体は Java で記述されている。

標準で「内部で開発用 WEB サーバを立てて動作確認」とかもできる。また OSS なのでプラグインやパッケージが多く配布されており、Git 連携なども可能。日本語化のための Pleiades を利用すれば日本語で利用できる。

IDE / Integrated Development Environment

ソフトウェアの統合開発環境。従来、コンパイラ、テキストエディタ、デバッガなど個別に利用していたツールをひとつの対話型操作環境 ( 多くはGUI ) から利用できるようにしたもの。

IDE は「エディタでソースを編集して、別で立ち上げてる仮想環境で動作させてデバッグにまた別のアプリケーションを使って」みたいな個別にやっている作業を「全部同じ GUI でさせる」ことがコンセプトになっている。そのためソースファイル群をまとめた プロジェクト というひとまとまりを内部に格納し、「コンパイル → リンク ( ファイルの参照関係を結合 ) → オブジェクトコード ( 機械言語の出力ファイル ) 生成」といった ビルド プロセスをエディタ内部で完結させる。

動的なデバッグやファイル全体を見渡したうえでのメソッドの参照先を検索 ... みたいなことができるのはこのおかげ。PHP のライブラリとかは IDE 内部にインストールして利用する ( 勿論別途指定することも可能 ) 。


SHORTCUTS

# 基本
Ctrl + Space      コンテンツ・アシスト ( コード補完 )
Shift + Enter     現在行の下に行追加
Ctrl + D          行削除
Ctrl + /          行コメント
Alt + Shift + J   Javadocコメント
Shift + Alt + A   モードチェンジ → 矩形選択
Ctrl + Shift + F  選択中のソースのインデントや改行コードなど自動調整
Alt + ←→          タブ移動
Ctrl + B          全プロジェクトをビルド

# 参照
F3                変数名にカーソル + F3 で定義元参照
Ctrl + Shift + G  参照されている箇所を調べる
Ctrl + Alt + H    呼び出しているメンバーを調べる

# ジャンプ
Ctrl + O          アウトラインを表示 → ジャンプ
Ctrl + L          指定行ジャンプ
Ctrl + K          選択した変数名が使用されている次の場所にジャンプ
                  上から Ctrl + Shift + K で戻る

# 検索
Ctrl + H          検索ダイアログ ( grep はここから )
Ctrl + J         ファイル内文字列検索 → 次へ Ctrl + k
Ctrl + F          ファイル内検索/置換
Ctrl + E          開いているタブ全体での探索
Ctrl + Shift + R  ファイルを検索

# デバッグ
Ctrl + Shift + B   ブレークポイントの設定・解除
Ctrl + .           警告・エラーへジャンプ
Ctrl + 1           警告・エラーの解決方法
F11                デバッグ実行
Ctrl + F11         プログラムの実行

TIPS & REFERENCES

ローカル WEB サーバがポート競合で開始できない

Eclipse が異常終了したりすると内部の Tomcat のプロセスがゾンビ化してポート競合を起こすことがある。ポート 8005, 8080, 8009 を利用しているので netstat -nao 等でポート番号から PID を確認して殺せ。以下 Windows コマンドプロンプト想定。

$ netstat -nao | grep -e 8080 -e 8005 -e 8009
> TCP 0.0.0.0:8009   0.0.0.0:0 LISTENING 13408
> TCP 0.0.0.0:8080   0.0.0.0:0 LISTENING 13408
> TCP 127.0.0.1:8005 0.0.0.0:0 LISTENING 13408
> TCP [::]:8009      [::]:0    LISTENING 13408
> TCP [::]:8080      [::]:0    LISTENING 13408

$ tasklist /fi "PID eq 13408"
> イメージ名      PID  セッション名  セッション メモリ使用量
> ========== ======= ============ ========== ===========
> javaw.exe    13408   RDP-Tcp#10          1    59,096 K

# 殺して大丈夫そうなので殺す
$ kill -f 13408

ビルド / 開発サーバのホットデプロイ

Java などコンパイル言語のビルドについて、Eclipse では Ctrl + B で全プロジェクトをビルドするほか 実行 → プロジェクトのビルド からプロジェクトをビルドしたり、同メニューから「クリーンビルド」や「自動的にビルド」を選べる ( デフォルトは「自動的にビルド」 ) 。

これに加えて開発サーバを Tomcat などで建てたとき、「サーバオプション」の「デフォルトでモジュールを再ロード」を有効にしておけば「ファイル保存 → 自動ビルド → サーバ再起動」によるホットデプロイが可能。

手元の環境ではなぜか上記サーバオプションが「サーバのプロパティのタブ」を閉じると元に戻ってしまっていた、常時タブを開いておくことで対応した。

但し、ビルドは通常キャッシュを利用しているので、ブランチをチェックアウトした後などは「クリーンビルド」が必要。

Diff で差分表示

パッケージエクスプローラより複数ファイルを選択し右クリック → 比較

保存時アクションの設定

設定 → 言語 → エディタ → 保存時アクションより指定。デフォルトでは自動的に不要な import 文が削除されたりしてしまうので、自社管理ソースでない場合は要注意。