Как остановить Maven/Artifactory от моментальных снимков с отметками времени

Из-за соображений дискового пространства я хотел бы сохранить только одну версию любого моментального снимка в моем репозитории. Вместо того, чтобы хранить несколько версий с суффиксами timestamp

например. электронная коммерция-2.3-20090806.145007-1.ear

Как я могу настроить это? Это параметр настройки сборки или хранилища (Artifactory)

Спасибо!

Ответ 1

Самый простой (и рекомендуется) - использовать не уникальные снимки. Если вы должны использовать уникальные снимки, вы можете сделать это в Artifactory, указав <maxUniqueSnapshots> свойство на <localRepository> определение в artifactory.config.xml

Например:

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

Для справки вы можете сделать это в Nexus (через пользовательский интерфейс), установив плановый сервис, он позволяет указать минимальное число для сохранения, максимальный период для их сохранения и удалить снимок, если развертывается версия выпуска.

Ответ 2

ЗАМЕЧАНИЕ, ЧТО ЭТОТ ХАРАКТЕРИСТИКА/ВОЗМОЖНОСТЬ УДАЛЕНА В 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

Ответ 3

Artifactory может очистить старые уникальные снимки. Однако мы обнаружили, что уникальные снимки непригодны для отслеживания зависимостей или возврата к определенной версии. Существуют лучшие альтернативы для этого, которые являются более чистыми и надежными. Вот почему Artifactory по умолчанию предпочитает не уникальные снимки, и эта политика может управляться централизованно (что уникально для Artifactory). Вы можете прочитать об этом подробнее, а также функцию автоматической очистки здесь.

Ответ 4

<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>

Ответ 5

Использование не-уникальных снимков - не лучший способ. Вместо этого создайте диспетчер репозитория, который может очистить снимки и настроить это, чтобы сохранить дисковое пространство. Наличие моментальных снимков облегчает отслеживание проблем, так как вы можете легко увидеть, какая версия фактически используется.

Ответ 6

НЕ будет работать в Maven 3, поскольку он был указан Apache ниже

It 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