23

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

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

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

ありがとう!

4

6 に答える 6

26

最も簡単な(そして推奨される)方法は、一意でないスナップショットを使用することです。一意のスナップショットを使用する必要がある場合は、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を介して)スケジュールされたサービスを設定することでこれを行うことができます。これにより、保持する最小数、保持する最大期間、およびリリースバージョンがデプロイされました。

于 2009-08-07T08:50:19.283 に答える
13

この機能/機能はMAVEN3.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

于 2009-08-07T09:26:23.687 に答える
4

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

于 2009-10-12T07:56:59.910 に答える
1

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

于 2009-08-13T02:31:33.893 に答える
1
<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>
于 2011-09-06T13:39:11.933 に答える
1

以下の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
于 2018-01-19T23:15:18.023 に答える