IntelliJでTomcatをサーバとして設定する方法

今まではTomcatのバージョン8.0.43を使っていたが設定手順の振り返りも含めてバージョンアップすることにした。EclipseだとPleiadesのAll in Oneをダウンロードすればすぐに使える状態だけど、IntelliJだとそうはいかないもんね。開発環境は下記。

  • macOS Catalina 10.15.7
  • IntelliJ IDEA Ultimate 2020.2.4
  • Tomcat 9.0.40
  • Apache Maven 3.6.3
  • Java 1.8.0_131

先ずはHomebrewでTomcatをインストール(アップデート)する。一応どんな種類があるか検索してみると下記のバージョンが表示された。

※HomebrewはMacOS環境におけるデファクトスタンダードなパッケージマネージャ

% brew search tomcat
==> Formulae
tomcat             tomcat-native      tomcat@7           tomcat@8

特にこだわりがなければ最新版であるtomcatで良いと思う。2020年11月30日現在では9.0.40がインストールされる。

% brew install tomcat

インストール先はbrew lsコマンド。パスは後で使うから確認しておいた方がGood。

% brew ls tomcat
/usr/local/Cellar/tomcat/9.0.40/bin/catalina
/usr/local/Cellar/tomcat/9.0.40/homebrew.mxcl.tomcat.plist
/usr/local/Cellar/tomcat/9.0.40/libexec/bin/ (17 files)
/usr/local/Cellar/tomcat/9.0.40/libexec/conf/ (10 files)
/usr/local/Cellar/tomcat/9.0.40/libexec/lib/ (32 files)
/usr/local/Cellar/tomcat/9.0.40/libexec/temp/safeToDelete.tmp
/usr/local/Cellar/tomcat/9.0.40/libexec/webapps/ (562 files)
/usr/local/Cellar/tomcat/9.0.40/libexec/ (2 files)
/usr/local/Cellar/tomcat/9.0.40/RELEASE-NOTES
/usr/local/Cellar/tomcat/9.0.40/RUNNING.txt

ここからがTomcatの設定。tomcat-users.xmlに下記のコードを設定してTomcat Managerを使えるようにする。usernamepasswordを任意だがStack Overflowとかで調べると基本的にはadminが使われるようだ。<tomcat-users>内に記述する点に注意。

<tomcat-users>
    <role rolename="manager"/>
    <role rolename="manager-script"/>
    <role rolename="manager-gui"/>
    <user username="admin" password="admin" roles="manager,manager-gui,manager-script"/>
</tomcat-users>

ファイルの場所は環境によって違うと思うが下記を参照。

/usr/local/Cellar/tomcat/9.0.40/libexec/conf/tomcat-users.xml

次はMavenプラグインからアクセス可能にする設定を記述。先ほど設定したusernamepasswordをセットすればOK。

<servers>
   <server>
     <id>localhost</id>
     <username>admin</username>
     <password>admin</password>
   </server>
</servers>

場所が分かり難いが基本的に.m2下にある。

/Users/KikiKeiten/.m2/wrapper/dists/apache-maven-3.6.3-bin/1iopthnavndlasol9gbrbg6bf2/apache-maven-3.6.3/conf/settings.xml

そしてようやくpom.xmlの出番(Mavenの場合)。<plugin>内に下記のコードを必要に応じて訂正しビルド。

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <server>localhost</server>
        <path>/tipswatch</path>
        <url>http://localhost:8080/manager/text</url>
        <update>true</update>
        <username>admin</username>
        <password>admin</password>
    </configuration>
</plugin>

最後にIntelliJの設定。

  1. Edit Configurations..
  2. [Tomcat Server] -> [Local]
  3. [Tomcat Server]ダイアログの[Tomcat Home]
  4. Tomcatのインストールディレクトリを指定
    • ~/tomcat/9.0.40/libexec
  5. 再び[Tomcat Server] -> [Local]
  6. 先ほど作成したApplication Serverを選択
  7. [Select Artifacts Deploy]で使用するwarを指定
  8. [Application context]でコンテキストルートを設定
  9. サーバを指定して実行

これで完了。

To comment

@TOC
閉じる