2

Maven を Web プロジェクトに統合しようとしています。mvn tomcat7:run を使用してプロジェクトを実行したいのですが、そうすると Maven が MyProject/target/tomcat に新しい tomcat 構成を作成し、localhost でそれを開こうとすると 404 エラーが発生します。事前に構成されたローカルの tomcat インスタンスを使用するように Maven を構成するために何をすべきか説明してもらえますか?

4

1 に答える 1

1

mvn tomcat7:runWeb アプリケーションをディレクトリから実行しているため、Maven は Tomcat 構成をローカルに作成し/targetます。その目的は、実行中の Web アプリケーションを外部構成から分離しておくことです。たとえば、カスタム Tomcat 構成を適用する必要がある場合、Maven は事前に Tomcat conf を変更する必要があります。これは、ファイル システムのアクセス許可が原因で実行できないか、他の Web アプリケーションに影響を与える可能性があります。そのため、Maven は構成をローカルにコピーし、カスタム構成を適用して、.xml 経由で Tomcat を起動しますtomcat7-maven-plugin

1 つのオプションは、 Maven でビルドされたものを既存の実行中の Tomcat インストールにデプロイできるmaven-cargo-pluginを調べることです。.war正しい構成では、代わりに、または使用mvn tomcat7:runmvn cargo:redeployて、実行中の webapp を削除し、新しく構築した webapp に置き換えます。

別の方法として、webapp を実行する Tomcat インスタンスを開始するように Eclipse を構成できます。Eclipse プロジェクト タイプを動的 Web プロジェクトに変更し、Tomcat インスタンスを Eclipse に追加するには、次のようにします。

  • ウィンドウ → 設定 → サーバー → ランタイム環境
  • 追加 → Apache Tomcat v7.0

ダウンロードしたTomcatを指定します。Eclipse は、この外部Tomcat をテンプレートとして使用して、Web アプリケーション用の内部Tomcat 構成を作成します。最後に、正しいリソースとライブラリを Tomcat にデプロイするように webapp を構成する必要があります。プロジェクトルート→プロパティ→展開アセンブリを右クリックして、リソースの場所に合わせてリストを変更します。標準的なセットアップは次のようになります

/src/main/java       |   /WEB-INF/classes
/src/main/resources  |   /WEB-INF/classes
/src/main/webapp     |   /
Maven Dependencies   |   /WEB-INF/lib
于 2013-02-11T08:41:16.367 に答える