web-dev-qa-db-ja.com

Maven / Artifactoryがタイムスタンプ付きのスナップショットを保持しないようにする方法

ディスク容量を考慮して、リポジトリにスナップショットの1つのバージョンのみを保持したいと思います。タイムスタンプのサフィックスが付いた複数のバージョンを保持するのではなく

例:eコマース-2.3-20090806.145007-1.ear

どうすればこれを設定できますか?これはビルド設定ですか、それともリポジトリ(Artifactory)設定ですか

ありがとう!

20
Pablojim

最も簡単な(そして 推奨 )方法は、一意でないスナップショットを使用することです。一意のスナップショットを使用する必要がある場合は、artifactory.config.xmlの<localRepository>定義で<maxUniqueSnapshots>プロパティを指定することにより、Artifactoryでこれを行うことができます。

例えば:

<localRepository>
  <key>snapshots</key>
  <blackedOut>false</blackedOut>
  <handleReleases>false</handleReleases>
  <handleSnapshots>true</handleSnapshots>
  <maxUniqueSnapshots>1</maxUniqueSnapshots>
  <includesPattern>**/*</includesPattern>
  <snapshotVersionBehavior>non-unique</snapshotVersionBehavior>
</localRepository>

参考までに、これは Nexus (UI経由)で スケジュールされたサービス を設定することで実行できます。これにより、保持する最小数、保持する最大期間を指定できます。それらの対象、およびリリースバージョンが展開されている場合にスナップショットを削除するかどうか。

26
Rich Seller

この機能/機能はMAVEN 3.0で削除されていることに注意してください

私自身の質問に何かを追加してください:

追加する

<distributionManagement>
    ...
    <snapshotRepository>
        ...
        <uniqueVersion>false</uniqueVersion>
    </snapshotRepository>
    ...
</distributionManagement>

私の親にpomもこれの解決に貢献しました。

見る:

http://i-proving.com/space/Jessamyn+Smith/blog/2008-06-16_1

Artifactoryのリポジトリの一意の設定を変更するには(管理者としてログインします)、関連するリポジトリで編集を選択します-スクリーンショットは次のとおりです:

http://wiki.jfrog.org/confluence/display/RTF/Understanding+Repositories

11
Pablojim

Artifactoryは、古い一意のスナップショットをクリーンアップできます。ただし、依存関係を追跡したり、特定のバージョンにロールバックしたりする目的では、一意のスナップショットは役に立たないことがわかりました。これを行うためのより良い代替手段があり、よりクリーンで信頼性があります。そのため、Artifactoryはデフォルトで一意でないスナップショットを優先し、このポリシーは集中的に制御できます(これはArtifactoryに固有です)。これについての詳細と、自動クリーンアップ機能について読むことができます ここ

4
user188269
<plugin>         
                    <groupId>org.codehaus.mojo</groupId>         
                    <artifactId>build-helper-maven-plugin</artifactId>         
                    <version>1.7</version>         
                    <executions>           
                        <execution>             
                            <id>remove-old-artifacts</id>             
                            <phase>package</phase>             
                            <goals>               
                                <goal>remove-project-artifact</goal>             
                            </goals>            
                            <configuration>  
                                <removeAll>true</removeAll><!-- When true, remove all built artifacts including all versions. When false, remove all built artifacts of this project version -->             
                            </configuration>          
                        </execution>         
                    </executions>       
                </plugin>
1
Cathy

以下のApacheによって引用されているため、Maven3では機能しません

It's not recommended to use non-unique snapshots since they lead to non-reproducible builds. The main use case for these was to save disk space in the repository, but this is best handled by scheduling a periodic snapshot removal task to keep the number of versions down
0
jprism

一意でないスナップショットを使用するのは良い方法ではありません。代わりに、スナップショットをクリーンアップし、ディスク容量を抑えるように構成できるリポジトリマネージャーを入手してください。タイムスタンプ付きのスナップショットがあると、実際に使用されているバージョンを簡単に確認できるため、問題の追跡がはるかに簡単になります。

0
Brian Fox