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

推薦する

私が遭遇したIE8の互換性に関する注意事項

1. IE8 の getElementById は id のみをサポートし、name はサポートしま...

ウェブページ作成の基本宣言文書型記述(DTD

CSS レイアウトを使用して WEB 標準に準拠した Web ページを作成することは、jb51.ne...

Linux システムをバックアップする docker コマンドの詳細な説明

tar バックアップ システム sudo tar cvpzf backup.tgz --exclud...

デジタルテーブル特殊効果を実現するネイティブJS

この記事では、ネイティブ JS で実装されたデジタル時計エフェクトを紹介します。エフェクトは次のとお...

WeChat アプレットのカスタム下部ナビゲーション バー コンポーネント

この記事の例では、WeChatアプレットの下部ナビゲーションバーコンポーネントの具体的な実装コードを...

ショートビデオ(Douyin)の透かし除去ツールの実装コード

目次1. まず最初のリンクを取得する2. ブラウザでこのリンクを開いてください3. アドレスを開くと...

Springboot および Vue プロジェクトの Docker デプロイメントの実装手順

目次A. SpringbootプロジェクトのDockerデプロイメント1. Springbootプロ...

MySQLデータベースの増分バックアップのアイデアと方法

MySQL データベースの増分バックアップを実行するには、データベース構成ファイル /etc/my....

DCL を使用して MySQL でユーザーを管理し、権限を制御する方法

DCL (データ制御言語): データベースのアクセス権とセキュリティ レベルを定義し、ユーザーを作成...

MySQLはbinlogを通じてデータを復元する

目次MySQL ログファイルバイナリログBinlogログがオンになっていますログ記録を有効にする方法...

Celery と Docker を使用して Django で定期的なタスクを処理する方法

Django アプリケーションを構築して拡張していくと、必然的に特定のタスクをバックグラウンドで自動...

Linux でネットワーク パケット損失と遅延をシミュレートする方法

netem と tc: netem は、Linux カーネル バージョン 2.6 以降で提供されるネ...

Docker を使用して pypi プライベート リポジトリを構築する方法

1. 建設1. htpasswd.txtファイルを準備するファイルには、パッケージを倉庫にアップロー...

DockerにRedisをインストールし、パスワードを設定して接続する方法

Redis は分散キャッシュ サービスです。キャッシュは、大規模システムの開発やパフォーマンスの最適...

VMware15/16 VMwareのロックを解除してMacOSをインストールする詳細な手順

VMware バージョン: VMware-workstation-full-16 VMware バー...