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 特殊文字コレクション

推薦する

MYSQL サブクエリとネストされたクエリの最適化例の分析

ゲーム史上最高スコアトップ100をチェックSQLコード cdb_playsgame ps から ps...

ServerManager の起動時にデータベースに接続できないエラーを解決する方法

Servermanager 起動時の接続データベース エラーmgrstart.batを実行しますエラ...

MySQLキーワードDistinctの詳細な紹介

MySQLキーワードDistinctの使い方の紹介DDL SQLを準備します: テーブルテストを作成...

数十億のデータに対するMySQLページングの最適化に関する簡単な説明

目次背景分析するデータシミュレーション1. 従業員テーブルと部門テーブルの2つのテーブルを作成します...

CSS セレクターの重みの理解(個人テスト)

コードをコピーコードは次のとおりです。 <スタイル タイプ="text/css&qu...

DockerでMongoDBコンテナをデプロイする方法

目次Dockerとは展開する1. イメージをプルする2. 画像を表示する3. コンテナを実行する4....

MySQL の中国語ソートの詳細と例

MySQL の漢字ソートの詳細な説明デフォルトでは、MySQL は日付、時刻、および英語の文字列の並...

vue v-for ループ オブジェクトの属性

目次1. ループオブジェクト内の値2. ループオブジェクト3. キーと値のループ1. ループオブジェ...

ブラウザのURLの前に小さなアイコンを表示する方法

多くのウェブサイトを閲覧すると、ブラウザのアドレスバーの前に小さなアイコンがあり、ブラウザのタブの位...

HTMLポップアップdivはモバイルの中央揃えを実現するのに非常に便利です

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

ウェブページを最適化してメモリとCPUの使用率を削減

一部の Web ページは大きく見えなくても開くのに非常に時間がかかる場合があります。一方、他の We...

両端揃えレイアウトを実現する CSS 列のサンプルコード

1. 堂々巡りいろいろ試行錯誤した結果、均等割り付けレイアウトを実現する最も簡単な方法は CSS ...

シェルを使用して複数のサーバーでバッチ操作を実行する方法

目次SSHプロトコルパスワード接続プロセスsshツールssh公開鍵ログインバッチ操作複数サーバーファ...

Node.js における非同期プログラミングの知識ポイントの詳細な説明

導入JavaScript はデフォルトでシングルスレッドであるため、コードは並列実行するための新しい...