私の基本的なワークフローはターミナルmvn clean install
私のベースディレクトリ。これにより、WARファイルを含むターゲットディレクトリが作成されます。そのwarファイルをTomcatのwebappsディレクトリにコピーします。
変更を加えると、明らかに退屈なプロセスを繰り返す必要があります。私はIntellij Ultimate 13.1.6を使用していますが、このすべてをIDE このガイド に基づいて行うことができることを知っています。
したがって、始める前にmvn clean
ターゲットディレクトリを削除するベース上。
ここで、プロジェクト構造->アーティファクトに入り、新しいWebアプリケーションを作成するときに開始します:アーカイブ。 project_nameという名前を付けて、デフォルトで異なる出力ディレクトリ(baseDir/out/artifacts/project_name vs baseDir/target)があり、すべてデフォルトのままにして[OK]を押しました。
ここで、[実行]-> [構成の編集]に移動し、次の設定を使用して新しいローカルTomcatサーバーを作成します
そして、[展開]タブで、写真に見られるように、[起動前]で作成されたアーティファクトを追加します。とても簡単です。
ただし、Intellijを介してサーバーを実行すると、サーバーは正常に起動しますが、何も展開されません。エラーが表示されます:
Artifact project_name: com.intellij.javaee.oss.admin.jmx.JmxAdminException: com.intellij.execution.ExecutionException: /Users/path/to/workspace/project_name/out/artifacts/project_name/project_name.war not found for the web module.
そして、ディレクトリを再確認すると、エラーに見られるように、何も作成されません。 outディレクトリでさえありません。
私は何を間違えていますか?回避策の1つは、ターミナルに戻り、mvn clean install
そして作成された.warファイルを使用して、それをデプロイメント構成に入れます。私はまだコマンドラインでそれをやっているので、それはハックのように感じました。まだビルドしていない場合、warファイルを見つけるためのディレクトリとしてターゲットを設定することはできません。
どんな援助も大歓迎です。
問題が発生した場所を確認するためにできることのチェックリスト:
1)ビルド>成果物のビルドを使用して、成果物を手動でビルドします。
2)アーティファクトが予想される出力ディレクトリ(out/artifacts/xxx)にあるかどうかを確認します。
3)そうでない場合は、[ファイル]> [プロジェクト構造]> [アーティファクト]に移動します
4)問題のアーティファクトファイル(この場合はproject_name)を選択します。
5)出力ディレクトリが正しいかどうかを確認します。必要に応じて、IntelliJがそれを行わない場合に備えて、このディレクトリを自分で作成してみてください(これは私を驚かせるでしょうが)
6)内容が正しいかどうかを確認してください。
7)オプションで、「ビルド時にビルド」をチェックして、サーバーを実行するたびに常に最新バージョンのコードをデプロイします。
TomcatにWARファイルをデプロイするには、展開されたWARを使用することを選択する必要があることに注意してください。これにより、展開/テスト/デバッグが大幅に高速化されます。
Runを使用してアプリを起動しようとすると、このエラーが発生しました。問題は、何らかの理由でBuild-> Build Artifactsを選択してもWARファイルがデプロイされないことでした。解決策:Ideaを閉じてからプロジェクトを再インポートし、アーティファクトとして選択しますwar-exploded。今回はデプロイが機能しました。
私は同じ問題を抱えていましたが、上記の解決策のどれも問題を解決しませんでした。他の誰かが同じ問題に遭遇した場合に備えて、ここで共有してください。
私の場合、Tomcatサーバーは、1099ではなく18099でJMXポートを実行するように構成されました。したがって、デフォルトでIntelliJ Tomcat構成で使用されるJMXポートは1099であるため、アーティファクトはデプロイされません。
18099に変更するか、特定のTomcat構成を削除することで問題が解決しました。
結論:アーティファクトをデプロイする場合は、IntelliJで構成されたJMXポートが、Tomcatサーバーで実際に使用されているJMXポートと一致することを確認してください。
上記のソリューションを試しましたが、Tomcatサーバーに展開したときにWARファイルが機能しませんでした。上記の解決策の代わりに、単にmvn clean
その後 mvn install
ターミナルウィンドウで。 WARファイルは次の場所にあります。
ProjectName/target/
出力ディレクトリパスを確認します。 ~
パス内では機能しません。