Eclipseユーザの為のIntelliJ IDEA Q&A

これは、IntelliJ IDEA Q&A for Eclipse Usersの翻訳です。


IntelliJ IDEAは、たいへんすぐれたIDEなのですが、設定や操作方法に若干の慣れが必要です。なんとなく使い始めると、そのメリットを享受できるようになる前に、使い慣れた開発環境に戻ってしまいます。なにしろEclipseでもNetBeansでもひと通りのことはできるわけで、使い慣れた環境以上の生産性を出すには、それなりの学習コストが必要です。*1


このドキュメントは、EclipseユーザがIDEAを試す際に一番最初に読むべきドキュメントです。Eclipseユーザはまずこの文書を読み、いくつかの概念の違いを頭の片隅においてください。これを読んででいないと'Project'や'Module'が何のことを指しているかわからず、かなり苦しいと思われます。それからキーバインドEclipse互換のものに設定してください。これでだいぶ楽になるはずです。


この翻訳が、EclipseユーザがIDEAに親しむ手助けになれば幸いです。

ワークスペースはどうなったの?プロジェクトはどこにあるの?

問題ありません。ただ、すこしやり方がちがうのです。

IDEAで は、作業対象となるコードベース全体に対してプロジェクトを作成し、そのプロジェクトの各コンポーネントに対してモジュールを作成します。IDEAでの モジュールはEclipseでのプロジェクトのようなもので、IDEAでのプロジェクトは大まかに言えばEclipseワークスペースに似ています。Eclipseワークスペースは作業対象全てを含んでおり、IDEAのプロジェクトはEclipseワークスペースとは完全に同じではないですが、IDEAでは複数のプロジェクトを個別のウィンドウで同時に開くことができます。


この表はEclipseとIDEAの概念が互いにどう対応するか理解するのに役立つでしょう。

Eclipse IDEA
Workspace (ワークスペース) Project
Project (プロジェクト) Module
Project-specific JRE(プロジェクトのJRE) Module JDK
User library (ユーザライブラリ) Global library
Classpath variable(クラスパス変数) Path variable
Project dependency (プロジェクトの依存関係) Module dependency
Library (ライブラリ) Module library

Eclipseのプロジェクトを開くには?

とても簡単です。Eclipseプロジェクトをインポートするか、あるいはEclipseプロジェクトに同期することができます。

IDEA はEclipseのモジュール間の依存関係をサポートするので、EclipseプロジェクトをIDEAで同期させることができ、使用するIDEが混 在したチームであってもうまくいきます。Eclipseへの後方互換性が不要であれば、EclipseプロジェクトをIDEA固有のフォーマットへとイン ポートすることもできます。Mavenを使っているなら、直接pom.xmlを開くことができます。IDEAはpom.xmlを参照して、全依存関係のインポートを、必要であれば依存ライブラリのダウンロードを、その他全てのセットアップを完全にこなします。

‘Facet’というのは何のためにあるの?

プロジェクトの設定が簡単にできるようにするためです。

Facet’は、様々なフレームワークやテクノロジ、プログラミング言語のサポートをカプセル化します。例えば、プロジェクトでSpringを有効にする場合 は、それに応じた’Facet’を追加するだけです。全てのライブラリがダウンロード・構成され、最大限のコード補完やリファクタリングを行うことが できます。さらには、コードモデルも認識されるので、設定に関する問題で煩うことも全く無くなります。


大抵の場合、同じタイプのファセットを1つ以上プロジェクトに追加します。例えば、アプリケーションを異なるサーバにデプロイするのに複数のWebファセットを追加したり、EJBのバージョンに応じて複数のEJBファセットを追加したりします。
('Project Configuration'も参照してください)

プロジェクトのJDKを設定するには?

‘Project Settings’ダイアログで設定します。


プロジェクトにJDKを追加するには、Ctrl+Alt+Shift+Sを押し、’Platform Settings’の’SDKs’をクリックしてJDKへのパスを指定します。その後、’Project’をクリックして、設定したJDKのうちどれを現在のプロジェクトで使用するかを指定します。JDKIDE単位で設定される点に注意してください。別のプロジェクトを作った場合には、同じJDKをもう一度追加する必要はありません。

プロジェクトにファイルを追加するには?

ファイルをプロジェクトのフォルダにコピーするだけです。

IDEAはプロジェクト内のファイルに対する全ての変更を監視し自動で適切に対処します。

設定を共有するには?

プロジェクト単位で設定を共有します。

IDEAには、コードスタイル実行構成・コード検査などプロジェクトレベルの設定がたくさんあります。これらの設定はプロジェクト記述ファイルに保存されるので、チーム全員で使用できます。


また、IDEAサーバ経由で設定を同期させて、どのコンピュータのIDEAでも好みの設定を使うこともできます。('IDE Setting Synchronization'を参照してください)

Code template(コード定型文)を設定するには?

Settingsダイアログから設定します。

IDEAでは、’Live Template’(定義済みのコードの断片)を使うことができます。関連付けされた略語を入力することで、’Live Template’を呼び出すことができます。’Live Template’は、パラメータを含んでいることがあり、挿入される箇所の文脈に応じて自動調整されます。コード中でテンプレートをどのように使用するか、詳細についてはここを参照してください。’Live Template’を管理するには、Ctrl+Alt+S を押下して’Settings’ダイアログを開き、’Live Templates’をクリックします。(’Code Generation’も参照してください)。

ファイルが保存されたことを確認するには?

心配しないでください。ファイルはすべて自動で保存されます。

IDEAを使えば、別アプリに切り替えたり、コンパイルしたり、コードを動かしたり、バージョン管理システムの操作をしたりする際に、ファイル保存に煩わされることはありません。更に安全にするために、一定時間ごとに自動保存することもできます。思わしくない変更を元に戻したい場合、’Local History’を利用できます。これはIDEA内蔵のバージョン管理システムです。

差分コンパイルはどうなったの?コンパイルはどうやるの?

差分コンパイルはありますが、若干やり方が異なっています。

デフォルトでは、IDEAは必要になるまで(アプリケーションを動作させたり、手動でビルドを実行するまで)ファイルをコンパイルしません。その時点ではもっと重要なタスクのためにシステムリソースを節約します。コンパイルは差分コンパイルで行います。IDEAはソースファイル間の依存関係を監視し、 ファイルが変更されたときだけ再コンパイルします。


コンパイルエラーのあるファイルと、そのファイルを含むフォルダはハイライトされます。
なので、Projectビューから簡単にエラーを調査できます。コンパイルエラーのある全てのファイルの一覧を見るには、’Project’ビューの’View As’コンボボックスでスコープを’Problems’を選択します。IDEAはコンパイルを行った後、ファイルにエラーがないか定期的にバックグラウンドでコード解析を行います。エラーが修正されたら自動的に赤いハイライトは消えます。


ファイルが保存される度にコンパイルを行えるように、’EclipseMode’プラグインを使うことができます(このプラグインサードパーティ製でありバンドルされていません)。


コンパイルエラーがあるコードを実行するには、Settingsダイアログ-Compiler- Java CompilerでEclipseコンパイラを選択肢、コンパイラに対する追加コマンドライン引数に-proceedOnErrorを指定します。

コード検査の設定にはどのようなオプションがありますか?

IDEとプロジェクトレベルのプロファイルに加え、ファイルごとの検査設定があります。


IDEAでは、コード検査の一式(プロファイル)を定義できます。IDEレベルのプロファイルは、現在のマシン上の全プロジェクトで使用できます。プロジェクトレベルのプロファイルはチームメンバー全員で使うことができます。ソースコード検査に関するより詳細な情報はここにあります。


コード検査のプロファイルを設定するには、Settingsダイアログを開くか、ツールバーのアイコンをクリックします。


コード検査を個別に設定することも可能です。電球のポップアップは問題を報告します。電球が表示されたときに、Alt+Enterを押して、右矢印を選択しメ ニューを開きます。そこで、現在のファイルかあるいはプロジェクト全体を対象にして、この検査を設定するかあるいは抑止するかを設定できます。

使い慣れたキーボードショートカットはどこにいったの?

ここにあります。

IDEAはEclipseのキーマップを含んでいるので、使い慣れたショートカットキーが使いたい場合は、Settingsダイアログ Keymapから、Eclipseのキーマップを選択することができます。


IDEAのキーボードショートカットを覚えたい場合には、デフォルトキーマップリファレンスをヘルプメニューから参照したり印刷することができます。

エディターの動きが違うように感じるのですが?

そのとおりです。

Eclipseでは、バーチャルスペース(カーソルを行末より後ろに動かせるようにする)はデフォルトでは無効化されています。IDEAのデフォルト設定は逆です。この設定を変更するには、Settings Editor、'Allow placement of caret after end of line'オプションのチェックを消します。


Eclipseは、カーソル上の識別子の使用箇所をデフォルトでハイライトします。この機能をIDEAで有効にするには、上記と同じ箇所にあるHighlight usages of element at caretをチェックします。

エディタタブの最大数があることにも注意してください('Setting dialog'で最大数を調整できます)。エディタタブの最大数に既に達している場合、新しいファイルを開こうとすると一番古いタブが自動的に閉じられます。

なぜコード補完の呼び出し方が3種類あるのですか?

補完するものが異なるからです。

IDEAには3種類のコード補完があります。この3つのコード補完は、作業中のコードに対して最も相応しい補完を常に選択できるように、それぞれ異なった働きをします。


例えば、補完候補が明らかで即座に補完を実行したい、という場合は、Ctrl+スペースを押下します。これをBasic Compilationと言います。この補完方法は、現在の文脈で利用できる補完の一覧を見たい場合や予約語を補完したい場合にも使えます。


より精密なコード補完が必要で、補完候補一覧を延々とスクロールしたくない場合は、Ctrl+Shift+Spaceを押して、型情報を利用して選択肢を狭めます。このようにして呼び出されたSmart Compiletionは候補一覧をフィルターし、望むものを素早く選ぶことができます。さらに、もう一度押すと、メソッドチェインした結果の補完も表示されます。


最後に、Class Names Completion(Ctrl+Alt+スペース)は、即座にクラス名を補完し、そのクラスがまだ参照されていない場合はインポート文を追加します。('Intelligent Coding Assisitance'を参照してください)

バージョン管理システム連携の設定はどうすればいいの?バージョン管理システムを自分のプロジェクトに追加するには?

‘Settings’ダイアログの’Version Control’から設定します。

IDEAでバージョン管理システムの初期設定をするには、バージョン管理システムの種類を選択し、サーバ名や認証情報のような接続情報を設定をし、プロジェクトフォルダを設定したバージョン管理システムに関連付けをします。


プロジェクトをバージョン管理システムに追加するには、単純にプロジェクトのルートフォルダをバージョン管理システムに関連付けするだけです。

バージョン管理システムの操作をするには?差分はどこで見るの?

専用の’Changes’ビューで行います。

Eclipseには同期パースペクティブがあり、ローカルとバージョン管理システムサーバ上のコードとの差分を示します。IDEAでは、この機能は’Changes’ビューのほんの一部です。このビューには、ローカルでの変更を示す’Local’タブや、他のチームメンバがチェックインした変更でまだ同期化されていないものを示す’Incoming’タブなどがあります。


外部の変更を追跡するには、’Change’ビューで’Incoming’タブを開き、’Refresh’ボタンを押下します。また、キャッシュの設定を行う必要があります。

バージョン管理システムからチェックアウトするには?

‘Welcome’画面から行います。

バージョン管理システムからチェックアウトしたソースからプロジェクトを作る場合、これが最も簡単な方法です。’Check out from Version Control’をクリックするだけです。

*1:周りに使い方をよく知っている人がいれば一番いいのですが、なかなかそういう人はいないのではないかと思います。