コンパイルしてTomcatサーバーにデプロイするためのMavenプロジェクトが与えられました。私は今日までmavenを使用したことがありませんが、かなりググっているようです。pom.xml
このプロジェクトの最上位ファイルのパッケージタイプはに設定されているようpom
です。
mvn install
このアプリケーションをデプロイするために何をする必要がありますか?war
どこかでファイルを見つけることができると思っていましたが、間違った場所を探しているか、ステップが抜けているようです。
コンパイルしてTomcatサーバーにデプロイするためのMavenプロジェクトが与えられました。私は今日までmavenを使用したことがありませんが、かなりググっているようです。pom.xml
このプロジェクトの最上位ファイルのパッケージタイプはに設定されているようpom
です。
mvn install
このアプリケーションをデプロイするために何をする必要がありますか?war
どこかでファイルを見つけることができると思っていましたが、間違った場所を探しているか、ステップが抜けているようです。
回答:
pom
基本的にはサブモジュールのコンテナです。各サブモジュールはpom.xml
、pom
パッケージングと同じディレクトリ内のサブディレクトリによって表されます。
どこかに、プロジェクト構造内にネストされ、war
パッケージ化された成果物(モジュール)が見つかります。Mavenは通常、すべてを/target
各モジュールのサブディレクトリにビルドします。したがって、パッケージ化されたモジュールのサブディレクトリをmvn install
調べてください。target
war
もちろん:
$ find . -iname "*.war"
等しく機能します;-)。
pomパッケージは、主要なアーティファクトがwarまたはjarではなく、pom.xml自体であることを示す仕様です。
多くの場合、問題のプロジェクトのサブディレクトリに通常含まれている「モジュール」と組み合わせて使用されます。ただし、プライマリバイナリを構築する必要のない特定のシナリオで使用することもできます。その他の重要なアーティファクトはすべてセカンダリアーティファクトとして宣言されています。
「ドキュメント」プロジェクトについて考えてみてください。主要な成果物はPDFである可能性がありますが、すでに構築されており、それを二次的な成果物として宣言する作業は、Mavenに必要のないPDFの構築方法を伝えるために構成よりも望ましい場合があります。編集済み。
のパッケージ化pom
は、他のプロジェクトを集約するプロジェクト、および一部のプラグインからの添付アーティファクトのみが有用な出力であるプロジェクトで使用されます。あなたの場合、私はあなたのトップレベルのpomが他のディレクトリを集約するためにインクルードしていると思います<modules>...</modules>
、そして実際の出力は他の(おそらくサブ)ディレクトリの1つの結果です。この目的のために適切にコーディングすると、のパッケージが作成されwar
ます。
mvn:installを実行するときに質問に簡単に答えるために、mavenは(pom.xmlのパッケージング属性)に基づいてパッケージ化されたアーティファクトを作成します。mavenインストールを実行すると、.package拡張子が付いたファイルを見つけることができます
アーティファクトをPOMとしてパッケージ化すると、そのライフサイクルは非常にシンプルになります。
package -> install -> deploy
http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
これは、pom.xmlファイルまたは他のパッケージタイプに適合しないプロジェクトをデプロイする場合に役立ちます。
多くのプロジェクトでpomパッケージを使用し、必要に応じて追加のフェーズと目標をバインドします。
たとえば、私たちのアプリケーションのいくつかは以下を使用します:
prepare-package -> test -> package -> install -> deploy
アプリケーションをmvn installすると、ローカルの.m2リポジトリに追加されます。他の場所で公開するには、正しい配布管理情報を設定する必要があります。アーティファクトがMavenによって自動的にアタッチされない場合は、Mavenビルダーヘルパープラグインを使用する必要がある場合もあります。
古典的な例をhttp://maven.apache.org/guides/getting-started/index.html#How_do_I_build_more_than_one_project_at_onceで見ることをお勧めします
ここで、my-webappは、my-appプロジェクトのコードに依存するWebプロジェクトです。したがって、2つのプロジェクトを1つにバンドルするために、最終的にバンドルするプロジェクト(Mavenの用語によるモジュール)を記述した最上位のpom.xmlがあります。このような最上位のpom.xmlは、pomパッケージを使用できます。
my-webappはwarパッケージを持ち、my-appへの依存関係を持つことができます。my-appはjarパッケージを持つことができます。
実際の使用例
Javaを多用する会社では、Nexusアーティファクトリポジトリに移動する必要があるpythonプロジェクトがありました。Pythonには実際にはアーティファクトがないので、Pythonファイルを.tarまたは.zipしてプッシュするだけです。リポジトリにはすでにMaven統合が含まれているため、Pythonプロジェクトをとしてパッケージ化してアップロードするために<packaging>pom</packaging>
、Mavenアセンブリプラグインでデジグネーターを使用しました.zip
。
手順はこのSO投稿で概説されています
https://maven.apache.org/pom.html
親プロジェクトおよび集約(マルチモジュール)プロジェクトのpomである必要があるパッケージ化タイプ。これらのタイプは、一連のライフサイクルステージにバインドされた目標を定義します。たとえば、パッケージ化がjarの場合、パッケージフェーズはjar:jarゴールを実行します。パッケージがpomの場合、実行される目標はsite:attach-descriptorになります。
POM(Project Object Model)は、プロジェクトをビルドするための自動化スクリプトにすぎません。XMLで自動化スクリプトを記述できます。ビルドスクリプトファイルには、異なる自動化ツールで異なる名前が付けられます
ANTでbuild.xmlを呼び出し、MAVENでpom.xmlを呼び出すように
MAVENは、jar、wars、ears、およびPOMをパッケージ化できます。
WOM IS POM.XMLを確認したい場合