Tomcat のソースコードを Eclipse のプロジェクトとしてインポートする
Tomcat のソースコード呼んだり、デバッグする際に便利かなと思い、Tomcat のソースコードを Eclipse のプロジェクトにインポートするってことをしてみました。
ドキュメントとしては以下あたりの内容になります。
・Apache Tomcat 8 (8.0.26) - Building Tomcat
https://tomcat.apache.org/tomcat-8.0-doc/building.html#Building_with_Eclipse
※ 以下を行なうにあたり Ant が必要なのでインストールしておいてください ( ドキュメント的には 1.9.5 以上みたいですが、今回使ったのは 1.8.4。まぁ、結果として無事動いったっぽいのでいいでしょう・・・ )。
1. Tomcat のソースコードをダウンロードする
現時点 ( 2015/10/02 ) 最新版の 8.0.26 のソースコードを使用することにしました。
・Apache Tomcat - Apache Tomcat 8 Downloads
http://tomcat.apache.org/download-80.cgi
適当なディレクトリに展開しておきます。以下 %TOMCATSRC% とします。
2. Ant のターゲット ide-eclipse を実行する
依存するライブラリダウンロードしたり、Eclipse のプロジェクトやクラスパス作ったりしてくれるターゲット ide-eclipse が用意されているのでこいつを実行します。
cd >%TOMCATSRC% ant ide-eclipse
※ デフォルト設定だと依存するライブラリが C:\usr\share\java にダウンロードされるので、場所を変えたい場合は build.properties.default の base.path を変更しておきます。
base.path=/usr/share/java
無事終了すれば base.path のディレクトリに cglib-2.2.3 等々なフォルダが、%TOMCATSRC% に .classpath、.project というファイルができているはずです。
3. Eclipse のクラスパス変数の設定を行なう
[Window] - [Preferences] - [Java] - [Build Path] - [Classpath Variables] から以下を追加する。
* TOMCAT_LIBS_BASE に base.path に設定したディレクトリ
* ANT_HOME に Ant インストールしたディレクトリ
4. Eclipse にインポートする
[File] - [Import] で [Existing Projects into Workspace] を選択して、[Select root directory] に %TOMCATSRC% を設定する。すると [Projects] の箇所に tomcat-8.0.x と出てくるのでチェック入っていること確認して [Finish] をクリックする。
パッケージエクスプローラに tomcat-8.0.x が表示されていればインポート成功です。
5. Eclipse から Tomcat を起動してみる
start-tomcat.launch、stop-tomcat.launch ( %TOMCATSRC%\res\ide-support\eclipse 配下 ) を用意してくれているみたいです。ただ、デフォルトのまま実行すると、以下のメッセージ出て正常に起動されませんでした。
警告: Unable to load server configuration from [C:\workspace44\apache-tomcat-8.0.26-src\output\build\conf\server.xml] 10 02, 2015 1:21:46 午前 org.apache.catalina.startup.Catalina start 重大: Cannot start server. Server instance is not configured.
server.xml 探しにいくディレクトリがまずそうなんで、以下の箇所修正してあげると上手くいきました。
( 修正前 ) <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dcatalina.home=${project_loc:/tomcat-8.0.x/java/org/apache/catalina/startup/Bootstrap.java}/output/build"/> ( 修正後 ) <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dcatalina.home=${project_loc:/tomcat-8.0.x/java/org/apache/catalina/startup/Bootstrap.java}"/>
※ 実行は start-tomcat.launch、あるいは、stop-tomcat.launch を [右クリック] - [Run As] - [start-tomcat] / [stop-tomcat] から。
ちなみにアプリケーションのデプロイは普通に %TOMCATSRC%\webapps に .war を置いてあげるだけで大丈夫です。
以上になります。