Как запретить Maven/Artifactory сохранять снимки с временными метками
-
12-09-2019 - |
Вопрос
Из соображений дискового пространства я бы хотел хранить в своем репозитории только одну версию любого снимка.Вместо того, чтобы хранить несколько версий с суффиксами временных меток.
напримерэлектронная коммерция-2.3-20090806.145007-1.ear
Как я могу это настроить?Это настройка сборки или настройка репозитория (Artifactory)?
Спасибо!
Решение
Самый простой (и рекомендуемые) способ — использовать неуникальные снимки.Если вам необходимо использовать уникальные снимки, вы можете сделать это в 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>
Для справки вы можете сделать это в Нексус (через пользовательский интерфейс), настроив плановое обслуживание, он позволяет вам указать минимальное количество для хранения, максимальный период их хранения и необходимость удаления моментального снимка, если развернута релизная версия.
Другие советы
ОБРАТИТЕ ВНИМАНИЕ, ЧТО ЭТА ФУНКЦИЯ/ВОЗМОЖНОСТЬ БЫЛА УДАЛЕНА В MAVEN 3.0.
Просто добавьте что-нибудь к моему собственному вопросу:
Добавление
<distributionManagement>
...
<snapshotRepository>
...
<uniqueVersion>false</uniqueVersion>
</snapshotRepository>
...
</distributionManagement>
моему родителю помпон также способствовал решению этой проблемы.
Видеть:
http://i-proving.com/space/Jessamyn+Smith/blog/2008-06-16_1
Чтобы изменить уникальные настройки репозитория в Artifactory, войдите в систему как администратор и выберите «Изменить» в соответствующем репозитории — снимок экрана здесь:
http://wiki.jfrog.org/confluence/display/RTF/Understanding+Repositories
Artifactory может очистить старые уникальные снимки.Однако мы обнаружили, что уникальные снимки бесполезны для отслеживания зависимостей или отката к определенной версии.Для этого есть лучшие альтернативы, более чистые и надежные.Вот почему Artifactory по умолчанию предпочитает неуникальные снимки, и эту политику можно изменить. централизованно контролируемый (что уникально для Artifactory).Вы можете прочитать больше об этом, а также о функции автоматической очистки. здесь.
<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>
Использование неуникальных снимков — не лучший вариант.Вместо этого приобретите менеджер репозитория, который может очищать снимки и настраивать его для экономии места на диске.Наличие снимков с отметкой времени значительно упрощает отслеживание проблем, поскольку вы можете легко увидеть, какая версия на самом деле используется.
НЕ будет работать в Maven 3, как было процитировано Apache ниже.
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