Maven を Web プロジェクトに統合しようとしています。mvn tomcat7:run を使用してプロジェクトを実行したいのですが、そうすると Maven が MyProject/target/tomcat に新しい tomcat 構成を作成し、localhost でそれを開こうとすると 404 エラーが発生します。事前に構成されたローカルの tomcat インスタンスを使用するように Maven を構成するために何をすべきか説明してもらえますか?
1 に答える
mvn tomcat7:run
Web アプリケーションをディレクトリから実行しているため、Maven は Tomcat 構成をローカルに作成し/target
ます。その目的は、実行中の Web アプリケーションを外部構成から分離しておくことです。たとえば、カスタム Tomcat 構成を適用する必要がある場合、Maven は事前に Tomcat conf を変更する必要があります。これは、ファイル システムのアクセス許可が原因で実行できないか、他の Web アプリケーションに影響を与える可能性があります。そのため、Maven は構成をローカルにコピーし、カスタム構成を適用して、.xml 経由で Tomcat を起動しますtomcat7-maven-plugin
。
1 つのオプションは、 Maven でビルドされたものを既存の実行中の Tomcat インストールにデプロイできるmaven-cargo-pluginを調べることです。.war
正しい構成では、代わりに、または使用mvn tomcat7:run
しmvn 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