Maven モードで Tomcat ソースコードを実行する方法

Maven モードで Tomcat ソースコードを実行する方法

序文

最近、Tomcat の起動プロセスを分析していました。Tomcat のソース コードはアイデア次第で表示できますが、コード コメントを記述できないため、非常に不便です。そのため、ソース コードのコピーをローカルで実行することはできます。これは、ソース コードを分析するのに非常に役立ちます。

1. tomcatソースコードをダウンロードし、tomcat-8.5.55バージョンを選択します。

tomcatの公式サイトにアクセスし、左側のメニューバーの[ダウンロード]で対応するバージョンをクリックして、ソースコードをダウンロードします。

2.アイデアでプロジェクトを作成する

1.アイデアにtomcat_studyという名前の空のプロジェクトを作成します。

2. プロジェクトソースディレクトリを開き、Tomcatソースコードを解凍します。

3. フォルダを作成する

tomcat ソース コード フォルダーの下にホーム ディレクトリを作成し、ソース コード内の conf ディレクトリと webapps ディレクトリ (logs などの新しく作成された他のディレクトリ) をその中に切り取り、新しい maven pom.xml ファイルも作成します。

4. pom.xmlファイルの内容

<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<プロジェクト xmlns="http://maven.apache.org/POM/4.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
 <モデルバージョン>4.0.0</モデルバージョン>
 <グループ ID>org.apache.tomcat</グループ ID>
 <artifactId>Tomcat8.5.55</artifactId>
 <name>Tomcat8.5.55</name>
 <バージョン>8.5.55</バージョン>
 
 <依存関係>
  <依存関係>
   <groupId>ジュニット</groupId>
   <artifactId>junit</artifactId>
   <バージョン>4.12</バージョン>
   <scope>テスト</scope>
  </依存関係>
 
  <依存関係>
   <groupId>org.easymock</groupId>
   <artifactId>イージーモック</artifactId>
   <バージョン>3.4</バージョン>
  </依存関係>
 
  <依存関係>
   <グループ ID> org.apache.ant</グループ ID>
   <artifactId>アリ</artifactId>
   <バージョン>1.9.5</バージョン>
  </依存関係>
 
  <依存関係>
   <グループ ID>javax.xml.rpc</グループ ID>
   <artifactId>javax.xml.rpc-api</artifactId>
   <バージョン>1.1</バージョン>
  </依存関係>
 
  <依存関係>
   <グループID>wsdl4j</グループID>
   <アーティファクトID>wsdl4j</アーティファクトID>
   <バージョン>1.6.2</バージョン>
  </依存関係>
 
  <依存関係>
   <groupId>org.eclipse.jdt.core.compiler</groupId>
   <artifactId>ecj</artifactId>
   <バージョン>4.5.1</バージョン>
  </依存関係>
 </依存関係>
 
 <ビルド>
  <finalName>Tomcat8.5.55</finalName>
  <ソースディレクトリ>java</ソースディレクトリ>
  <リソース>
   <リソース>
    <ディレクトリ>java</ディレクトリ>
   </リソース>
  </リソース>
  <プラグイン>
   <プラグイン>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <バージョン>3.1</バージョン>
    <構成>
     <encoding>UTF-8</encoding>
     <ソース>1.8</ソース>
     <target>1.8</target>
    </構成>
   </プラグイン>
  </プラグイン>
 </ビルド>
</プロジェクト>

5. Tomcatの起動構成

5.1 プロジェクトをビルドする

上記の操作が完了したら、idea でプロジェクトを再度開き、追加した pom.xml ファイルを直接選択し、すべてのパッケージをダウンロードした後、プロジェクト構造を構築します。

5.2 実行/デバッグ構成の設定

メインクラス:
org.apache.catalina.startup.Bootstrap
 
独自のパスに応じて VM オプションを変更します。
-Dcatalina.home=G:/projects/tomcat_study/apache-tomcat-8.5.55-src/home 
-Dcatalina.base=G:/projects/tomcat_study/apache-tomcat-8.5.55-src/home 
-Djava.endorsed.dirs=G:/projects/tomcat_study/apache-tomcat-8.5.55-src/home/endorsed 
-Djava.io.tmpdir=G:/projects/tomcat_study/apache-tomcat-8.5.55-src/home/temp 
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
-Djava.util.logging.config.file=G:/projects/tomcat_study/apache-tomcat-8.5.55-src/home/conf/logging.properties

5.3 ContextConfigクラスの設定

次に、ContextConfig クラス (org.apache.catalina.startup の下) を開き、コード行を追加します: context.addServletContainerInitializer(new JasperInitializer(),null);

5.4 Tomcatを起動する

tomcat の初期化および起動プロセスやその他のソース コード実行をデバッグおよび表示できます。エントリ クラスは、Bootstrap クラスのメイン メソッドです。

要約する

上記のプロセスにより、Maven を介して Tomcat ソース コードをローカルで実行できます。エディターはこれを正常に実行し、Tomcat でサーブレット初期化を呼び出すプロセスに注釈を付けました。

Tomcat ソース コードを Maven モードで実行する方法に関するこの記事はこれで終わりです。Tomcat ソース コードを Maven モードで実行する方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Maven を使用してアイデアを正常にコンパイルできるが、プロジェクトの実行時に多くの jar パッケージが見つからないという問題を解決します。
  • Maven を通じてプロジェクトを実行する 2 つの方法の詳細な説明

<<:  CSS Houdini でダイナミックな波効果を実現

>>:  XHTML 特殊文字コレクション

推薦する

Dockerコンテナのタイムゾーン調整操作

Docker コンテナのタイムゾーンがホストマシンと一致しているかどうかを確認するにはどうすればよい...

HTML でフレームセット タグを使用するチュートリアル

フレームセット ページは通常の Web ページとは多少異なります。依然として <HTML>...

Linux nohup はプログラムをバックグラウンドで実行し、表示します (nohup と &)

1. バックグラウンド実行一般的に、Linux 上のプログラムは .sh ファイル (./sh フ...

Centos は chrony 時間同期サーバー プロセス図を構築します

私の環境: 3 centos7.5 1804マスター 192.168.100.140ノード1 192...

ico ミラー コードを HTML に追加します (favicon.ico はルート ディレクトリに配置されます)

コード:コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC &...

MySQL 外部キー制約 (FOREIGN KEY) ケースの説明

MySQL 外部キー制約 (FOREIGN KEY) はテーブルの特別なフィールドであり、主キー制約...

Web コンテンツ ページを作成するための 9 つの実用的なヒント

コンテンツ1. 読者に留まる理由を与える。ウェブページを面白く魅力的なものにしましょう。しかし、まず...

Vue でのルーティングガードの具体的な使用法

目次1. グローバルガード1.1 グローバルフロントガード1.2 グローバルポストルートガード1.3...

CentOS 7 で rpm パッケージを使用して MySQL 5.7.18 をインストールする

最近、MySQL を使っています。Linux での mysql-installation という記事...

Docker による Oracle 11g イメージ構成のプルに関する詳細なチュートリアル

さっそくAlibaba の oracle11g イメージをプルして構成する docker の記録を開...

HTML で margin:0 auto を使用するとページ全体が中央に配置されない問題の解決方法

今日、jsp ページを書きました。<div style="margin:0 auto...

SSMプロジェクトは、ホットデプロイメント構成を実装するためにTomcatとMavenを使用してWARパッケージとしてデプロイされることが多い。

背景ご存知のとおり、JavaEE プロジェクトを開発した後は、そのプロジェクトをサーバーの Tomc...

MySQLでトランザクションを開始する方法

序文この記事では主にMySQLでトランザクションを開始する方法について紹介します。関連情報については...

Jenkins の docker-compose デプロイメントと構成に関する詳細なチュートリアル

Docker-compose デプロイメント構成 Jenkins 1. Docker-compose...

Dockerデータを完全にクリーンアップする方法

目次定期的に剪定するミラーエビクションコンテナのクリーンアップネットワークソート体積の蒸発完全にクリ...