IDEAはArtifactsを通じてWebプロジェクトを公開します

今日IDEA Java Webプロジェクト実行すると突然java.lang.ClassNotFoundException:com.mysql.jdbc.Driverというエラーが表示されますが、プロジェクトのlibディレクトリにjdbc接続jarパッケージを追加したので、IDEAでコンパイルしてもエラーは発生しません、および後で追加した2つのjarパッケージが見つかりませんでしたが、IDEAは自動的に通常のプロンプトを表示し、jarパッケージが実際にプロジェクトに導入されたことを示しますが、プロジェクトの公開時に問題が発生しました。

調査の結果、IDEAはプロジェクトをoutフォルダにリリースしましたが、このフォルダにはlibディレクトリがありません。これには、アーティファクトを介したIDEAパブリッシングプロジェクトの問題が含まれます。以前は、IDEAのアーティファクトを介してJava Webプロジェクトを作成していました。プロセスレコードは次のとおりです:https : //blog.csdn.net/theVicTory/article/details/104282873

libファイルがないため、解決策は、以下に示すように、出力プロジェクトの設定時に必要なフォルダーを追加し、Artifactsが設定されているときにlibを出力ルートに追加し、プロジェクトの依存jarパッケージをこのディレクトリに配置して問題を解決します。

問題は、アーティファクトとは何ですか?IDEAはどのようにJava Webプロジェクトをパッケージ化して出力しますか?

アーティファクト

アーティファクトはmavenの概念であり、Java Webプロジェクトをパッケージ化して、サーバーにデプロイしたり、アプリケーションプラットフォームに配布したりできるようにするツールです。3つのパッケージ方法があります。

  • Javaファイルと関連リソースをパッケージ化用のファイルに集約するJavaアーカイブ
  • WAR:Web ApplicationaRchive。JSP、サーブレット、Javaクラス、XML、タグライブラリなどのWebアプリケーションリソースを含むJARファイル。
  • 展開:拡張モード、つまりwarファイルは圧縮されず、元のファイルディレクトリ構造が保持されるため、開発中のファイル変更に便利です。

IDEAの右上隅にプロジェクト構造アイコンがあります。ショートカットキーCtrl + Alt + Shift + Sを使用して開くこともできます。アーティファクトの構成で選択されたタイプはwar展開され、プロジェクトは圧縮せずに指定されたディレクトリに公開されます。 。オプションボックスの出力ボックスでは、発行するプロジェクトの場所を指定できます。デフォルトでは、プロジェクトを発行するために、現在のプロジェクトの下にoutディレクトリが作成されます。公開されたコンテンツは、ラベル<output root>の下のコンテンツです。プロジェクトで使用されるリソースがこのディレクトリに配置されていない場合、それらは公開ディレクトリにパッケージ化されないため、リソースが見つからないというエラーが発生する可能性があるため、必要な場合一部のファイルをリリースディレクトリに追加するには、この<output root>タグの下に手動で追加する必要があります。

その他のプロジェクト構造タブは、プロジェクトの設定に使用されます。最初のタブは、プロジェクト名、SDK、およびプロジェクトコンパイルの出力パスを設定できる[プロジェクト]タブです。

2番目のタブは[モジュール]で、プロジェクトのモジュール化に使用できます(たとえば、私はWebプロジェクトモジュールを使用しています)。また、3つのサブタブがあり、ソースを使用してプロジェクトのフォルダータイプをマークできるため、IDEAはプロジェクトをより適切に識別できます。2番目のパスは、プロジェクトのコンパイル、テスト、およびデプロイメントのファイル出力パスを詳細に設定するために使用されます。3番目の依存関係は、SDK、lib、依存関係など、プロジェクトで使用される依存関係を設定するために使用されます

 3番目のタブはライブラリの構成です。これはプロジェクトが依存するlibライブラリです。たとえば、ここでは私のプロジェクトはJava EE 6ライブラリに依存しています。+記号をクリックして、jarパッケージをライブラリに追加します

 4番目の「ファセット」タブでは、モジュールで使用されるさまざまなフレームワーク、テクノロジー、および言語(web、strtus2、spring、hibernateなど)について説明します。これらのファセットにより、Intellij IDEAはモジュールコンテンツの処理方法を認識し、対応するフレームワークおよび言語との整合性を確保します。ファセットはモジュールと緊密に統合されています。モジュールで構成すると、ファセットもその中に表示されます。

5番目は、前の[成果物]タブで、プロジェクトパッケージのデプロイメントと出力を構成するために使用されます。

IDEAがTomcatプロジェクトを配備

Tomcatサーバープロジェクトをデプロイする方法は3つあります

  • 1つ目は最も一般的な方法で、Tomcatインストールディレクトリの下のwebappsフォルダーにプロジェクトを配置するため、サーバーを起動した後、サーバーを介してフォルダー内のすべてのプロジェクトに直接アクセスできます。
  • さらに、Tomcat / conf / server.xmlファイルを変更して、サーバーのデプロイメントディレクトリを指定できます。
    <Context path="/xx" docBase="D:\\workspace\\xx\\target\\xx" reloadable="true" sessionCookiePath="/xx"sessionCookieName="yoursessionname">
     </Context>
  • 3番目の方法は、Tomcat / conf / Catalinaディレクトリにxmlファイルを作成し、ミラーディレクトリを作成してミラーの場所を設定することです。

    <Context path="/xx" docBase="D:\\workspace\\xx\\target\\xx" debug="0" privileged="true"> </Context>

    IDEAは3番目のミラーリング方式でTomcatサーバーを起動します。サーバーの起動は、startup.batではなくcatalina.bat.runを介して行われることがわかります。

CATALINA_HOMEはTomcatのインストールディレクトリで、CATALINA_BASEはTomcatの作業ディレクトリです。Tomcatの複数のインスタンスを実行したいが、Tomcatソフトウェアの複数のコピーをインストールしたくない場合。次に、複数の作業ディレクトリを構成できます。各インスタンスは単一の作業ディレクトリを所有しますが、同じインストールディレクトリを共有します。Tomcatの実行中の各インスタンスは、独自のconf、logs、temp、webapps、work、およびsharedディレクトリーを使用する必要があるため、CATALINA_BASEはこれらのディレクトリーを指します。その他のディレクトリには、主にTomcatのバイナリとスクリプトが含まれており、CATALINA_HOMEはこれらのディレクトリを指します。以下に示すように、Tomcatの起動時にIDEAによってログ出力が表示されます。Tomcatの一時作業ディレクトリがcドライブのIDEAディレクトリに作成されますが、インストールディレクトリは引き続き使用されます。

元の記事124件を公開 65のような 130,000 以上を 訪問

おすすめ

転載: blog.csdn.net/theVicTory/article/details/104682415