1

いくつかのモジュールで構成される Maven プロジェクトがあります。これはクライアント マシンに展開され、Tomcat のインストールが含まれ、インストーラーに NSIS が使用されます。Tomcat を監視し、再起動したり、更新を実行したりできる別のアプリケーションがあります。

したがって、次のようにモジュールをセットアップしました。

事業
  +-- クライアント (戦争のためのすべてのコード、ハンドラー)
  +-- client-common - (共有コード、モニターとクライアント間で共有)
  +-- client-web - (戦争、基本的には戦争を使用するだけで、アプリケーションコンテキスト、web.xml などがあります)
  +-- monitor - (監視アプリケーション jar。ラッパーを使用して実行)

そのため、インストーラーを作成する必要があります。インストーラーとなる別のモジュールを作成することを計画していました。ここに tomcat ディレクトリがあり、maven ですべてを「アセンブル」してから NSIS を実行して、最終的なインストーラーを作成できるようにしたいと考えています。

ただし、モニターの jar ファイルをディレクトリに配置し、すべてのモニターの依存関係を lib/ ディレクトリに配置する必要があります。最終的なディレクトリ構造は次のようになります。

プロジェクトのインストールディレクトリ/monitor/monitor-version.jar
プロジェクトのインストールディレクトリ/monitor/lib/monitor-dep-1.jar
プロジェクトのインストールディレクトリ/monitor/lib/monitor-dep-2.jar
プロジェクトのインストールディレクトリ/monitor/lib/monitor-dep-3.jar
project-installer-directory/webapps/client-web.war

client-web\WEB-INF\lib ディレクトリには、展開後のすべての client-web の依存関係があります。それはうまくいきます.warファイルがあります。私が問題を抱えているのは、client-web モジュールの依存関係とは無関係に、モニター モジュールの依存関係を取得することです。

インストーラー モジュールを作成して、モニターとクライアント Web の依存関係を作成しようとしましたが、依存関係のコピーを使用すると、すべてが得られます。私が欲しいものではありません。

必要なディレクトリ形式を含むzipファイルを提供するために、monitor-assemblyまたは何かと呼ばれる新しいモジュールを作成する方向に傾いていますが、それはさらに別のモジュールです。

誰かがこれを達成する正しい方法で私を助けてくれますか?

ありがとう!

4

1 に答える 1

0

最もエレガントなのは、独自の Maven プラグインを作成するか、拡張することmaven-dependency-pluginです。実際に必要なのは に非常に近いものですがdependency:copy-dependencies、開始するアーティファクトを指定する可能性が必要です。コードからわかるように、これは現時点では不可能です。

さらなるアイデア: モジュール (必要なモジュールの依存関係を含む) ごとに 1 つの zip アセンブリを作成し、dependency:unpack を使用してインストーラー モジュールでこれらの zip を解凍することができます。

于 2010-04-20T06:51:14.233 に答える