2

複数モジュールの Maven プロジェクトがあり、他の 3 つのモジュールに依存する新しいモジュールを作成しました。(.war ファイルを生成する Web アプリ Maven モジュールが既にあるので、これが必要です)

このモジュールの出力は .jar であり、次のリソースもいくつかあります。

  1. 春のコンテキストxmlファイル
  2. プロパティファイル

ここで、サーバーにアップロードできるように、本番用のフォルダーを作成したいと考えています。私はMavenが私のためにこれを行うことができることを願っています.

次のレイアウトが必要です。

myjar.jar
/libs/  (the 3 other maven modules that are dependancies)
/resources

また、私の親 pom.xml には、パッケージ化する必要がある slf4j/log4j/ のような一般的な依存関係がいくつかあります。

次のように生成するスイッチを mvn に追加できれば素晴らしいと思います。

mvn clean install production

コマンドラインを介してサーバーでこれを実行する予定です。

4

3 に答える 3

5

あなたが探しているのはMaven Assemblyだと思います:

https://maven.apache.org/plugins/maven-assembly-plugin/

プロファイルを使用して、既定でアセンブリの生成を無効にすることができます (開発プロセスを高速化できます)。

于 2012-04-17T18:23:53.467 に答える
2

@puceは、アセンブリプラグインを使用するのが最適な場合があるという点で正しいです。簡単にできないことは、Mavenに別のライフサイクル「プロダクション」を追加することです。時間がある場合は、これを行うためのプラグインを作成できますが、「production」または「prod-deploy」と呼ばれるプロファイルを使用して、サーバー上で対処できるようにすることをお勧めします。

mvn clean install -Pprod-deploy

Mavenで覚えておくべきことの1つは、その規則を使用してプロジェクトをビルドすることは非常に得意ですが、ビルドライフサイクルの外で実際にスクリプトを作成することはかなり悪いことです。

ant / python / bashやgroovyなどの外部スクリプトツールを使用して、最初にmvnを使用してビルドを実行し、次により自然な言語でデプロイメントをスクリプト化することが何度かありました。

于 2012-04-17T19:54:59.710 に答える
1

Maven の意図は、本番環境へのデプロイではなくビルドです。この目的のために、Chef や Puppet などをお勧めします。技術的な観点からは、Maven を介してそのようなことを処理することはもちろん可能です。Jenkins のような CI ソリューション上に構築することも可能です。さらに、Jenkins からスクリプトを実行して、本番環境にデプロイすることもできます。

于 2012-04-18T07:26:46.143 に答える