Как остановить 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