Maven の Netbeans モジュール プラグインを使用して自動更新サイトをアーティファクトとして作成するにはどうすればよいですか?
-
01-10-2019 - |
質問
Maven の Netbeans モジュール プラグインを使用して自動更新サイトをアーティファクトとして作成するにはどうすればよいですか?
自動更新サイトのファイルが target/ ディレクトリに生成されているのはわかりますが、それをアーティファクトに変換する方法がわかりません。
私の最終的な目的は、インストールを容易にするために war に埋め込むことです (依存関係プラグインを使用してアーティファクトを解凍します)。
解決
私は専門家ではありませんが、WebStart アプリを生成するのがこれに対処する「古典的な」方法ではないでしょうか?から ドキュメンテーション:
NBM補給プロジェクト/パッケージングは、ローカル/リモートリポーターのNBMファイルから最終アプリケーションを作成し、ZIPファイル(リポジトリにアップロード可能)にバンドルするビルドライフサイクルを定義します。 AutOUPDATEサイトおよび/またはアプリケーションのWebStartableバイナリ。
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>nbm-maven-plugin</artifactId> <executions> <execution> <id>extra</id> <phase>package</phase> <goals> <goal>autoupdate</goal> <goal>webstart-app</goal> </goals> <configuration> <!--distBase>central::default::http://repo1.maven.org/maven2</distBase--> <codebase>${project.build.directory}/webstart/milos</codebase> </configuration> </execution> </executions> </plugin>
を参照してください。 自動更新 そして ウェブスタートアプリ 詳細の目標。
しかし、このプラグインは生成するファイルからアーティファクトを作成しません。それが私の問題です...「war」プロジェクトのビルド中に、別の場所で解凍する必要があるためです。
その場合、私は Maven アセンブリ プラグイン 生成されたファイル (zip、tar.gz など) のディストリビューションを作成し、ビルド中にローカル リポジトリにインストールします。次に、次を使用して war プロジェクトからアーカイブを解凍できます。 dependency:unpack
.
他のヒント
NBMプラグインの更新サイトの目標は、「POM」パッケージプロジェクトで動作し、Reactorのプロジェクトから更新サイトを作成します。 POMプロジェクトにはアーティファクトが添付できないため、アーティファクトは生成されません。
また、NBMアプリケーションプロジェクトでも動作し、プロジェクトの依存関係を取り、そこから更新サイトを作成します。次に、更新サイトGZIPがメインアーティファクトに添付されます(これはアプリケーションzipファイルですが、作成はパラメーターによって抑制される可能性があります)。このUSECASEをリリースリポジトリを指すNBM Distribution URLパラメーターと組み合わせると、基本的にリリースリポジトリは展開更新サイトと更新サイトのバージョンに等しくなります。明らかに実行中のアプリケーションでは、安定したURLが必要なため、現在の更新サイトをその1つのパブリックURLとシンリンクにsymlinkする必要があります。