[Windows][IntelliJ][Java][Tomcat] IntelliJでTomcat9の環境を作成する

JavaとTomcatの初学メモ

# 公式
[Apache Tomcat® - Welcome!](http://tomcat.apache.org/)

# 検証環境

| 種別 | バージョン |
|:-:|:-:|
| OS  | Windows 10 64bit  |
| JDK | jdk1.8.0_121  |
| IDE | IntelliJ IDEA 2017.1.3  |
| Tomcat | 9.0.0.M21 |

# Tomcat のインストール
今回は現状の最新の Tomcat 9 で検証しました。
[Apache Tomcat® - Apache Tomcat 9 Software Downloads](http://tomcat.apache.org/download-90.cgi)

ダウンロードページの `32-bit/64-bit Windows Service Installer` をインストールします。

インストールの際に、adminアカウントを追加し、今回はそれを認証に使用します。

# デプロイ先サーバー設定の追加

Mavenが参照しに行くサーバー設定を追加します。
`C:\Users\user\.m2\settings.xml` に以下を追記します。
`id` は任意で良いです。`username/password` は一旦adminのアカウントで追加します。

```xml:Tomcatのアカウントの追加
    <servers>
        <server>
            <id>localhost</id>
            <username>user</username>
            <password>pass</password>
        </server>
    </servers>
```

[Maven – Settings Reference](https://maven.apache.org/settings.html)

# IntelliJで新規プロジェクトの作成

Mavenの新規プロジェクトで、`maven-achetype-webapp` を選択

![image.png](https://qiita-image-store.s3.amazonaws.com/0/37721/3e35c154-3fa4-48fa-7ed5-6eb3f9c5f2bb.png)

# pom.xml の修正

プロジェクトを作成したら、 `pom.xml` に以下を追加する。

```xml:pom.xml
  <build>
    <finalName>test3</finalName>
    <!-- 以下を追加 -->
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.6.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
          <encoding>UTF-8</encoding>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <server>localhost</server>
          <url>http://localhost:8080/manager</url>
          <path>/${project.build.finalName}</path>
        </configuration>
      </plugin>
    </plugins>
  </build>
```

maven-compiler-plugin => バージョンを明示的に指定(今回は1.8)
tomcat7-maven-plugin => デプロイ先のサーバーを指定

プラグインの設定を追加したら Maven の Reimport を実行しておく

![image.png](https://qiita-image-store.s3.amazonaws.com/0/37721/fc118374-3c87-d644-d2a5-7094fb535fb0.png)

# IntelliJのビルド時のデプロイ設定を追加

`Edit Configurations` から設定を追加

![image.png](https://qiita-image-store.s3.amazonaws.com/0/37721/5086e6cf-7d0d-98df-cbab-47995a64adf1.png)

`+` の追加から、`Tomcat Serverを選択`

![image.png](https://qiita-image-store.s3.amazonaws.com/0/37721/0c21d05d-7933-bcd8-3ae4-90ad0d9329fd.png)

`Application Server` でインストール済みの `Tomcat 9` を指定する。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/37721/3561612c-0e70-d21c-23cc-11f87e7084ce.png)

同設定内の `Deployment` タブで、プロジェクトで生成されるアーティファクト(*.war)を指定 

![image.png](https://qiita-image-store.s3.amazonaws.com/0/37721/4b26bdaa-cd2a-5d29-802c-330501a6cb0d.png)

`Apptication Context` にアプリケーション名を指定。
(TODO: `/` のままだと Tomcat の初期画面が表示されてしまう）

![image.png](https://qiita-image-store.s3.amazonaws.com/0/37721/69049654-d371-5100-4f29-de00a380cda2.png)

# 実行する

設定が完了した状態でビルドを実行すると、Tomcatにwarファイルがデプロイされた状態で実行されます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/37721/326aa9b5-590b-b119-e00c-31b92d534af3.png)

`index.jsp` を以下のように修正してみます。

```jsp:index.jsp
<html>
<body>
<h2>Hello World!!!</h2>
<%= new java.util.Date() %>
</body>
</html>
```

反映されていることを確認できました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/37721/c2bc0c38-ae94-b857-6966-05fc734772e1.png)

# まとめ

初学のため粗があるとは思いますが、ひとまず最低限の環境構築はできました。

# 参考
[Servlet(サーブレット) / JSP入門 : Javaサーバサイドアプリ](https://www.javadrive.jp/servlet/)
[IntelliJ IDEA を使って Web アプリケーションを Tomcat へデプロイしてみた - Qiita](http://qiita.com/shinyay/items/a3561bae8f0b1804bbb4)
[5. Maven による実アプリケーション開発 | TECHSCORE(テックスコア)](http://www.techscore.com/tech/Java/ApacheJakarta/Maven/5/)