Jenkins 用の Debian パッケージ プラグインを認識していません。また、自分のニーズに適した maven-deb-plugin が見つかりませんでした (リンク先のページの「何が機能しないか」を参照してください)。Jenkins に Maven ビルド ジョブがある場合、debian/changelog でバージョンをインクリメントし、dpkg-buildpackage -b -nc を実行するポスト ステップ シェル スクリプトを追加します。
-nc は、ビルド前のクリーンを抑制します。これは、そうしないと、Jenkins が既に行っているように、debian/rules ファイルが maven ターゲットを実行して jar をビルドしようとするためです。私の debian/rules からのスニペット:
pre-built-stamp
mvn package
touch pre-built-stamp
override_dh_auto_build: pre-built-stamp
したがって、Jenkins で Maven の手順を実行した後、次のように実行されます。
touch pre-built-stamp
dpkg-buildpackage -b -nc
この部分は個人的な好みですが、Jenkins がビルドされた deb をリポジトリに直接プッシュすることはありません。代わりに、.deb ファイルと .changes ファイルをビルド アーティファクトとして保存するので、Promoted Builds Pluginを使用して .changes ファイルに署名し、リポジトリ (rsync) にコピーできます。これにより、開発者は、ステージング リポジトリへのプッシュを承認する前に、deb をダウンロードしてテストできます。次に、2 番目のプロモーションを使用して、パッケージをライブ リポジトリにプッシュできます。
リポジトリマネージャーとして reprepro を選びました。その主な欠点の 1 つは、ディストリビューション内のパッケージの複数のバージョンを一度に処理できないため、ロールバックがより困難になることです。これ以外にも、信頼性が高く使いやすいことがわかり、現在はメインの Debian リポジトリを完全にミラーリングし、プライベート リポジトリをホストするために使用しています。
Reprepro は inoticoming を使用して新しい受信パッケージを検出し、変更ファイルの署名を検証して、Jenkins だけが新しいパッケージを追加できるようにします。
reprepro のドキュメントがオンラインで不足しているものもありますが、インストールして reprepro と inoticoming の man ページを読むことをお勧めします。