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

推薦する

FileZilla_Server:425 データ接続を開けない問題を解決する方法

FileZilla Serverをサーバーにインストールすると、425データ接続を開けない問題が発生...

スライドドアを実装するための CSS サンプルコード

いわゆるスライディングドアテクノロジーとは、さまざまな長さのテキストに合わせてボックスの背景を自動的...

MySQL ルートパスワードを変更する 4 つの方法 (要約)

方法1: SET PASSWORDコマンドを使用するまずMySQLにログインします。フォーマット: ...

Vueはパーセンテージバー効果を実現します

この記事では、パーセンテージバーを実現するためのVueの具体的なコードを参考までに共有します。具体的...

Javascript での JSBridge に関する予備的研究

目次JSBridgeの起源JSBridgeの双方向通信原理JSはネイティブを呼び出すネイティブコール...

Javascript 共通高階関数の詳細

目次1. 一般的な高階関数1.1、フィルター1.2、地図1.3、減らすHigher Order fu...

MySQL テーブルと列のコメントの概要

コードと同様に、テーブルや列にコメントを追加して、他のユーザーがその機能を理解できるようにすることが...

MySQL インデックスの詳細な説明

目次1. インデックスの基本1.1 はじめに1.2 インデックスの仕組み1.3 インデックスの種類1...

nginx を使用した負荷分散モジュールの解釈

目次負荷分散に nginx を使用するための 2 つのモジュール:アップストリームはロードノードプー...

JavaScript関数の詳細な説明これを指す問題

目次1.関数内のこの方向1. 通常の機能2. コンストラクター3. オブジェクトメソッド4. イベン...

ウェブページが自動的にデュアルコアブラウザの高速モードを呼び出すようにします(Webkit)

コードサンプルヘッドタグにコード行を追加します: XML/HTML コードコンテンツをクリップボード...

MySQLにおけるビューの作成(CREATE VIEW)と使用制限の詳しい説明

この記事では、例を使用して、MySQL ビューの作成 (CREATE VIEW) と使用上の制限につ...

Centos7でmysql6の初期化インストールパスワードをインストールする方法

1. まずデータベースサーバーを停止しますサービスmysqld停止2.vim /etc/my.cnf...

HTML の META タグの使用に関するヒントの例

HTML メタタグHTML メタタグは、Web ページのコンテンツに関する情報をブラウザや検索エンジ...

中国語と英語のフォント名の比較表(FounderとArphicを含む)

CSS ファイルでは、フォント名が文字化けしていることがよくあります。これは、作成者が中国語フォン...