Теперь, когда maven-3 отказался от поддержки для
До казалось лучшей практикой установить для всех снимков значение uniqueVersion = false
Теперь, похоже, нет большой проблемы переключиться на версию с отметкой времени, в конце концов, они управляются центральным репозиторием нексуса, который может регулярно удалять старые снимки.
Проблема заключается в локальных рабочих станциях разработчиков. Их локальный репозиторий быстро становится очень большим с уникальными снимками.
Как справиться с этой проблемой?
Сейчас я вижу следующие возможные решения:
Чтобы проверить beaviour и предоставить дополнительную информацию, я установил небольшой сервер Nexus, построил два проекта (a и b) и попробовал:
a:
4.0.0
de.glauche
a
0.0.1-SNAPSHOT
nexus
nexus
http://server:8081/nexus/content/repositories/snapshots
b:
4.0.0
de.glauche
b
0.0.1-SNAPSHOT
nexus
nexus
http://server:8081/nexus/content/repositories/snapshots/
nexus
nexus
true
http://server:8081/nexus/content/repositories/snapshots/
de.glauche
a
0.0.1-SNAPSHOT
Теперь, когда я использую maven и запустите "deploy" на "a", у меня будет
a-0.0.1-SNAPSHOT.jar
a-0.0.1-20101204.150527-6.jar
a-0.0.1-SNAPSHOT.pom
a-0.0.1-20101204.150527-6.pom
в локальном репозитории. С новой версией отметки времени каждый раз, когда я запускаю цель развертывания. То же самое происходит, когда я пытаюсь обновить снимки с сервера nexus (закрыть проект «a», удалить его из локального репозитория, построить «b»)
В среде, где создается множество снимков (подумайте о сервере Hudson ... ), локальный репозиторий заполняется старыми версиями быстро
Обновление 2:
Чтобы проверить, как и почему это не удается, я провел еще несколько тестов. Каждый тест запускается для очистки всего (de / glauche удаляется как с машин, так и с нексуса)
20101206.201808 3 20101206201808 jar 0.0.1-20101206.201808-3 20101206201808 пом 0.0.1-20101206.201808-3 20101206201808
запустить зависимости обновления (на машине B) в m2eclipse (встроенный m3 final) -> в локальном репозитории есть snapshot.jar + snapshot-timestamp.jar: (
запустить цель пакета с внешним maven 2.2.1 -> локальный репозиторий имеет snapshot.jar + snapshot-timestamp.jar: (
Итак, резюмируя: цель «развертывание» в maven3 работает лучше, чем в 2.2.1, локальный репозиторий на машине создания выглядит нормально. Но у получателя всегда много версий с временными метками ...
Что я делаю не так?
Обновление 3
Я также тестировал различные другие конфигурации, сначала заменил nexus на artifactory -> такое же поведение. Затем используйте клиенты linux maven 3 для загрузки снимков из менеджера репозитория -> в локальном репозитории все еще есть снимки с отметками времени: (