web-dev-qa-db-ja.com

IntelliJ IDEA:Maven、プロジェクトのコンパイルとデプロイメント

誰かが私に、バインドされたmavenプロジェクトでのIntelliJ IDEAのコンパイル、デプロイ、およびパッケージ化のワークフローを説明できますか?

IDEAのデバッグモードでTomcatサーバーを起動すると、誤解が生じます。たとえば、私にはアーティファクトが1つあります。戦争アーカイブです。デバッグモードを実行しているときに理解しているように、IDEA=変更されたコードを再コンパイルして更新し、war-archiveに入れます。

しかし、パッケージ化されたmavenアーティファクトはどうなりますか? IntelliJはそれを更新しますか?または、変更されたコードが確実に環境にアップロードされるように、「起動前にmavenを使用する」オプションを設定する必要がありますか?

45

Intelli Jは、独自のビルドプロセスを使用するプロジェクトのビルドにMavenを使用しません。プロジェクトの説明としてpomファイルを使用します。

これはいくつかのことを意味します。Tomcatで実行するときにwarファイルなどのアーティファクトを構築する場合は、IntelliJにRun/Debug Configurationsダイアログでwarを構築するように指示するだけです。 IntelliJは、実行/デバッグ構成のデプロイタブで指定したアーティファクトを自動的にビルドします。したがって、Explodeed Warを指定すると、Explored Warが作成され、Regular Warを指定すると、Regular Warが作成されます。

場合によっては、カスタムプラグインを実行したり、ターゲットをビルドしたりする必要があります。その場合、カスタムMavenゴールを実行するようにIntelliJを構成できます。

アーティファクトをビルドするのではなく、Mavenパッケージのゴールを実行するようにintellIJに指示することもできます。 IntelliJは、ターゲットディレクトリの下にあるものをすべてTomcatにデプロイします。

重要なポイントは、IntellIJが2つの別々のビルドシステムを使用していることです。各ビルドシステムに何をするかを伝える必要があります。そして、どのビルドシステムを何のために使用するかをIntelliJに指示する必要があります。 IntelliJは、Mavenを何かに使用するように指示しない限り、プロジェクトがインポートされると、デフォルトで独自のビルドシステムを使用します。

IntelliJはpomファイルで指定したアーティファクトをビルドしますが、Mavenツールウィンドウでデプロイターゲットをクリックしない限り、アーティファクトリポジトリ(ローカルまたはその他の方法)をデプロイするようなことはしません。

また、pomファイルを変更し、自動再インポートを有効にしていない場合、Mavenツールウィンドウから[再インポートを強制]オプションをクリックするまで、それらの変更はプロジェクトに反映されません。

61