3

Artifactory を使用して、エンタープライズ マルチモジュール プロジェクトをサポートしています。多くの場合、モジュールの名前を変更しますが、POM ファイル内の関連する依存関係は、新しいモジュール名を使用するように更新されません。SNAPSHOT の依存関係は定期的に自動的にクリーンアップされないため、これらの古いモジュール参照は何ヶ月もそこにとどまる可能性があります。Artifactory を別のサーバーに移行したときに、古いモジュールの依存関係が原因でビルド エラーが発生したことをいくつか発見しました。Jenkins を使用してこれらの SNAPSHOT アーティファクトを毎晩構築しているため、SNAPSHOT アーティファクトのクリーンアップを自動化する方法が必要です。

Artifactory (または Nexus などの別のアーティファクト サーバー) は、SNAPSHOT アーティファクトが X 日より古い場合、アーティファクトが削除されるという概念をサポートしていますか? 私がやりたいことを達成するためにアーティファクトサーバーのクリーンアップを自動化する別の方法はありますか? 私が考えることができる唯一のことは、毎晩のビルドが開始される前に定期的に libs-snapshot-local をクリアする cron ジョブを作成することです。誰かがすでにこの機能を構築していますか?

4

3 に答える 3

2

X日間ダウンロードされていないアーティファクトを削除するRubyスクリプトを作成しました。JBaruchが彼の答えで述べたのと同じように機能します。

プラグインではありません。Artifactory オープン ソースで動作します。プラグインは Artifactory Pro でのみサポートされています。

ソースコード: https://gist.github.com/aleung/5203736

于 2013-03-29T15:01:18.633 に答える
2

私の知る限り、Artifactory には、特定の値よりも古いモジュールを自動的に削除する方法がありません。私のショップでは、Artifactory の REST APIを使用してまさにこれを行う Groovy クライアントを作成しました。

アーティファクトが共有ライブラリである場合、アーティファクトを削除する前に、それらに依存するものがないように注意する必要があることに注意してください。私たちのスクリプトもこれを考慮に入れています。

フォローアップに興味がある場合は、コメントを投稿してください。スクリプトを共有してもよいかどうかを確認します.

于 2012-12-10T21:06:35.853 に答える
2

別の解決策は、ユーザー プラグインです。Artifactory 自体で (提案された REST Gareth によるリモート呼び出しとは対照的に) スケジュールに基づいて実行される単純な Groovy スクリプトを作成し、長時間ダウンロードされていないアーティファクトを検索して削除することができます

于 2012-12-14T23:17:32.200 に答える