Tomcatのビルド

目次

はじめに

Apache Tomcatのソースからのビルドは非常に簡単で、Tomcatに貢献するための最初のステップです。完全で包括的な手順は、BUILDING.txtファイルに記載されています。以下は、簡単なステップバイステップガイドです。

Java Development Kit (JDK) をダウンロードする

Apache Tomcatのビルドには、JDK (バージョン17) 以降がインストールされている必要があります。https://adoptium.net/temurin/releasesまたは他のJDKベンダーからダウンロードできます。

重要:環境変数JAVA_HOMEを、JDKリリースをインストールしたディレクトリのパス名に設定してください。

Apache Antをインストールする

こちらから、Ant 1.10.2以降のバイナリディストリビューションをダウンロードしてください。

Antリリースが独自のディレクトリ(通常はapache-ant-[バージョン]という名前)に配置されるように、バイナリディストリビューションを適切な場所に解凍します。このガイドの残りの部分では、記号名${ant.home}を使用して、Antインストールディレクトリのフルパス名を参照します。

重要:ANT_HOME環境変数を作成してディレクトリ${ant.home}を指し示し、PATH環境変数を変更してディレクトリ${ant.home}/binをリストに含めます。これにより、antコマンドラインスクリプトが使用可能になり、実際にビルドを実行するために使用されます。

Tomcatのソースコードを入手する

Tomcat GitリポジトリのURL:https://github.com/apache/tomcat

Tomcatソースパッケージ:https://tomcat.dokyumento.jp/download-10.cgi

リリースバージョンのタグ、または現在の開発コードのmainを選択して、Gitを使用してソースリポジトリをクローンするか、ソースパッケージをダウンロードして解凍します。このガイドの残りの部分では、記号名${tomcat.source}を使用して、ソースが配置されている場所を参照します。

ダウンロードエリアを設定する

Tomcatのビルドには、依存する多くのライブラリをダウンロードする必要があります。これらのライブラリのダウンロードエリアを設定することを強くお勧めします。

デフォルトでは、ビルドは依存関係を${user.home}/tomcat-build-libsディレクトリにダウンロードするように設定されています。これを変更することはできますが(下記参照)、絶対パスである必要があります。

ビルドは、${tomcat.source}/build.propertiesファイルを作成することによって制御されます。 build.properties.defaultおよびbuild.xmlファイルに存在するプロパティを再定義するために使用できます。 build.propertiesファイルはデフォルトでは存在しません。作成する必要があります。

ダウンロードエリアは、プロパティbase.pathによって定義されます。例えば

# ----- Default Base Path for Dependent Packages -----
# Replace this path with the directory path where
# dependencies binaries should be downloaded.
base.path=/home/me/some-place-to-download-to

異なるバージョンのTomcatが同じダウンロードエリアを共有できます。

別の例

base.path=${user.dir}/../libraries-tomcat10.1

プロキシ経由でインターネットにアクセスするユーザーは、プロパティファイルを使用してAntにプロキシ設定を指示する必要があります

# ----- Proxy setup -----
proxy.host=proxy.domain
proxy.port=8080
proxy.use=on

Tomcatのビルド

次のコマンドを使用してTomcatをビルドします

cd ${tomcat.source}
ant

ビルドが正常に完了すると、使用可能なTomcatインストールが${tomcat.source}/output/buildディレクトリに作成され、通常のスクリプトで起動および停止できます。

Eclipseでのビルド

重要:これは、Tomcatをビルドするためのサポートされている方法ではありません。この情報は保証なしに提供されています:-)。 Tomcatをビルドする唯一のサポートされている方法は、上記で説明したAntビルドを使用することです。ただし、一部の開発者はJava IDEでJavaコードを操作することを好み、次の手順は一部の開発者によって使用されています。

注:これは、Eclipseですべてをビルドできるわけではありません。ビルドプロセスでは、単純なJavaコンパイルではない多くのステージでAntを使用する必要があります。ただし、Javaコードの表示と編集、警告の取得、コードの再フォーマット、リファクタリングの実行、IDEでのTomcatの実行などが可能です。

警告:Antターゲットを実行する前に、上記のように${tomcat.source}/build.propertiesファイルを作成して設定することを忘れないでください。

Eclipseプロジェクトファイルと起動ターゲットのサンプルは、ソースツリーのres/ide-support/eclipseディレクトリに提供されています。以下の手順では、これらを必要な場所に自動的にコピーします。

すべてのバイナリ依存関係をダウンロードし、ソースツリーのルートにEclipseプロジェクトとクラスパスファイルを作成するために、Antターゲットが便宜上提供されています。

cd ${tomcat.source}
ant ide-eclipse

Eclipseを起動し、新しいワークスペースを作成します。

ファイル->インポートを使用し、既存のプロジェクトをワークスペースにを選択します。そこから、Tomcatソースツリーのルートディレクトリ(${tomcat.source})を選択し、そこに配置されているTomcatプロジェクトをインポートします。

start-tomcatおよびstop-tomcat起動構成は、res/ide-support/eclipseに提供されており、実行->実行構成ダイアログで使用できます。これらを使用して、EclipseからTomcatを起動および停止します。これらを自分で設定する場合(または別のIDEを使用している場合)は、メインクラスとしてorg.apache.catalina.startup.Bootstrap、プログラム引数としてstart/stopなどを使用し、VM引数として-Dcatalina.home=...(ビルドディレクトリの名前を指定)を指定します。

いくつかのフォーマット設定を調整することで、Tomcatのコーディング規則との整合性を保ち(コントリビューションが受け入れられるようにする)ことがはるかに容易になります

Java -> コードスタイル -> フォーマッタ -> 編集... タブポリシー:スペースのみ
タブとインデントサイズ:4
一般 -> エディター -> テキストエディター 表示タブ幅:2
タブの代わりにスペースを挿入
空白文字を表示(オプション)
XML -> XMLファイル -> エディタースペースを使用してインデント
インデントサイズ:2
Ant -> エディター -> フォーマッタタブサイズ:2
スペースの代わりにタブ文字を使用:チェックを外す

コンパイラ警告の推奨構成は、res/ide-support/eclipse/java-compiler-errors-warnings.txtファイルに記載されています。

他のIDEでのビルド

同じ一般的なアプローチは、ほとんどのIDEで機能するはずです。たとえば、IntelliJ IDEAで機能することが報告されています。