pom.xml のある Maven プロジェクトのディレクトリを IntelliJ IDEA でインポートする

## 概要
[プログラミング言語作成ハンズオン (2017/01/22)](https://connpass.com/event/41184/) に参加するにあたって、IntelliJ IDEA を利用してビルド・実行するための設定メモ。

（IntelliJ IDEA および Maven には不慣れなので変なところがあれば教えてください）

## 前提環境
- Windows 10 Home
- IntelliJ IDEA Community Edition 2016.3.3

## メモ：コマンドラインからビルドする場合
該当の [プログラミング言語作成ハンズオン](https://connpass.com/event/41184/) に書かれている手順もそのまま実行できることは確認できた。

```:dos
> mvn compile
> mvn exec:java -Dexec.args=test-input/factorial.nub
```

コマンドラインビルドする場合、あらかじめ以下設定を行っておくこと。

- JAVA_HOME を ```C:\Program Files\Java\jdk1.8.0_102``` 等に通しておくこと。
- mvn への PATH (```C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.3.3\plugins\maven\lib\maven3\bin``` 等) を通しておくこと。

## 既存の Maven プロジェクトをインポートする形で IntelliJ IDEA のプロジェクトを作成する
今回は参考として
@kmizu 氏の https://github.com/kmizu/nub を検証材料として利用する。

## 検証用ソースコード取得
適当な場所に該当の nub をクローン。今回は C:\opensource\nub に配置することにする。

```:dos
> cd C:\opensource
> git clone https://github.com/kmizu/nub.git
```

## IntelliJ IDEA を起動・プロジェクトのインポート
とりあえずここでは Import Project を選択。
<img width="436" alt="capt_20170122_094108_00.png" src="https://qiita-image-store.s3.amazonaws.com/0/25555/17c132ce-8d31-16c7-7ef5-fce1e6488ca4.png">

先ほど取得したソースコード位置「C:\opensource\nub」を指定。
<img width="350" alt="capt_20170122_094326_00.png" src="https://qiita-image-store.s3.amazonaws.com/0/25555/dacf1b9a-0f66-93cf-93d1-1645450a6a3f.png">

[Import project from external model] および [Maven] を選択。
<img width="440" alt="capt_20170122_094646_00.png" src="https://qiita-image-store.s3.amazonaws.com/0/25555/23ccab1f-e01a-0a5a-9e23-da8e8b54f787.png">

ここは手あたり次第チェック付けまくってみる。
<img width="500" alt="capt_20170122_094926_00.png" src="https://qiita-image-store.s3.amazonaws.com/0/25555/d4d62c1f-2ec5-8136-6db4-56484f01d991.png">

ここはそのままスルー。
<img width="440" alt="capt_20170122_095111_00.png" src="https://qiita-image-store.s3.amazonaws.com/0/25555/b8febe6d-c1a3-9650-9ee0-bb308a455e19.png">

左側から JDKっぽい SDK を選択して進む。（左側欄が空っぽの場合は「+」ボタンで追加する）
<img width="440" alt="capt_20170122_095253_00.png" src="https://qiita-image-store.s3.amazonaws.com/0/25555/99335475-6fc2-967c-6070-6b081b010d4e.png">

これはそのままスルー。
<img width="440" alt="capt_20170122_095425_00.png" src="https://qiita-image-store.s3.amazonaws.com/0/25555/56c11613-cfe8-0807-fd91-f2591e6fd88e.png">

ここまでくれば（インポートによる）プロジェクト作成完了。
<img width="519" alt="capt_20170122_100459_00.png" src="https://qiita-image-store.s3.amazonaws.com/0/25555/bc4d27b5-2511-ff13-3ce5-5f45463e6056.png">

## ビルド
いきなりビルドしようとしても「NubLexer」が見つかりませんのエラーが出るので先に Maven による同期を行う必要がある。

### Maven 同期
プロジェクトの右クリックメニューから Maven - Generate Sources and Update Folders を選択することにより依存モジュールが入手できる。
<img width="400" alt="capt_20170122_101038_00.png" src="https://qiita-image-store.s3.amazonaws.com/0/25555/534b27b3-20ba-abc1-9fbb-fd020f6bb8f0.png">

### ビルドの実施
[メニュー] - [Build] - [Rebuild Project] によりビルド。

## 実行
### 実行 Configuration 作成
[メニュー] - [Run] - [Edit Configurations ...] を選択。

[＋] ボタンにより Maven Configuration を追加。
<img width="369" alt="capt_20170122_101532_00.png" src="https://qiita-image-store.s3.amazonaws.com/0/25555/4a1aabcd-00d2-4273-cf35-7fffeda213bb.png">

各種入力。
<img width="550" alt="capt_20170122_101755_00.png" src="https://qiita-image-store.s3.amazonaws.com/0/25555/3afb81f6-328e-dafe-fa5e-22fb65edeba4.png">

- [Working directory] にはローカルリポジトリのディレクトリパスを入力。
- [Command line] には実行時の引数（ハンズオン資料では ```mvn exec:java -Dexec.args=test-input/factorial.nub``` となっていたのでこれの引数部を入力する。

### 実行の実施
さきほど設定した Configuration の実行が Run メニューから行えるようになっている。
<img width="640" alt="capt_20170122_102230_00.png" src="https://qiita-image-store.s3.amazonaws.com/0/25555/2358a6dd-c469-fb25-c692-519fcd84ba3e.png">

これを実行すると以下のような出力が得られる。
<img width="450" alt="capt_20170122_102444_00.png" src="https://qiita-image-store.s3.amazonaws.com/0/25555/70851b00-1e79-8c76-0af3-4e9273942c8b.png">

とりあえず成功。