3

現在のプロジェクトのすべてのアプリケーションに対して Debian パッケージを作成する必要があります。これらは、「java -jar ....」のように起動されるスタンドアロン アプリケーションです。各プロジェクトは、他のいくつかのプロジェクト アーティファクトに依存する独自の JAR アーティファクトを提供し、多くのサード パーティの依存関係 (コンパイルとランタイムの両方) があります。

現在、必要なすべての JAR (推移的な依存関係、いくつかのリソース ファイル、スクリプトなど) を含む debian パッケージをビルドできます。

また、パッケージの制御ファイル構成で JRE Debian 依存関係を指定して、Java もインストールされるようにします。

codehaus unix-maven-plugin で deb パッケージを作成しています。

JAR は /usr/share/java に、スクリプトは /usr/bin などにインストールされます。

サーバーにパッケージを 1 つだけインストールする限り問題ありません。インストールとランタイムは成功します。しかし、パッケージに含まれる JAR の 1 つを提供するソフトウェアが既にインストールされている場合 (たとえば、slf4j-api-1.5.10.jar)、パッケージのインストールに問題があります。パッケージ マネージャーは、ファイルの競合について不平を言います。これは、明らかに同じjarファイルのセットを提供する2つのアプリケーションを同じサーバーにインストールしようとしたときにも発生します。

私の問題の解決策は、他のdebianパッケージで利用可能なJARファイルを含めず、代わりに制御ファイルの「依存」セクションでそれらのパッケージを宣言することです。残念ながら、maven リポジトリのすべての JAR に対応する debian パッケージが用意されているわけではありませんが、不足しているアーティファクトについては、他の debian パッケージを自分で作成できます。

Maven の依存関係を debian の依存関係のリスト (制御ファイルの "Depends" セクション) に変換して、外部の debian パッケージとして利用できる JAR ファイルが再配布されないようにする方法はありますか?

アプリケーションに必要な JAR を提供する可能性のある debian パッケージを見つけるために、カスタム maven プラグインで使用できるオンライン サービスはありますか?

ありがとうございました

4

1 に答える 1