現在のプロジェクトのすべてのアプリケーションに対して 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 プラグインで使用できるオンライン サービスはありますか?
ありがとうございました