Временная метка в файле моментальных снимков maven-metadata.xml составляет более секунды, чем фактическая временная метка jar.
Я столкнулся с необычной проблемой:
Я использовал "mvn deploy
" (Maven 3.3.9, Jenkins 2.45, Nexus 2.12.0), чтобы развернуть банку моментальных снимков в моей связи в jenkins, как показано ниже (предположим, что имя jar: userdao.jar
):
Uploaded: myNexusIp/nexus/content/repositories/snapshots/xxx/1.0-SNAPSHOT/userdao-1.0-20170512.111840-6.jar
Uploaded: myNexusIp/nexus/content/repositories/snapshots/xxx/1.0-SNAPSHOT/maven-metadata.xml
Сборка прошла успешно, и все было в порядке.
Но когда я построил другой проект maven, который был выше userdao.jar
, произошла ошибка, как показано ниже:
Could not find artifact userdao:jar:1.0-20170512.111840-6 in public (http://myNexusIp/nexus/content/groups/public/)
После позиционирования я обнаружил, что метка времени в maven-metadata.xml
в нексусе была больше секунды, чем фактическая временная метка jar!
Как показано ниже:
- in
maven-metadata.xml
: 1.0-20170512.111840-6
- фактический существующий снимок: userdao-1.0-20170512.111839-6.jar
Поскольку userdao-1.0-20170512.111840-6.jar
не существовало в Nexus,
правый должен быть userdao-1.0-20170512.111839-6.jar
, поэтому ошибки.
Кто может сказать мне, почему и как его решить?
Ответы
Ответ 1
Я действительно нашел обратное. После обновления с Maven 3.3.9 до 3.5.0 я мог бы надежно развернуть артефакты, где к маркам времени, появляющимся в файлах metadata.xml на Nexus, были неверны по сравнению с фактическими файлами, которые были развернуты.
С понижением (до 3.3.9) все работало правильно. Всегда обновлялись версии metadata.xml и временные метки.
Возможно, это что-то связано с обновлением Maven 3.5.0 для удаления эфира?
Ответ 2
Это было подтверждено, проблема maven-3.5 https://issues.apache.org/jira/browse/MNG-6240 и исправлена. За релизом maven-3.5.1 с исправлением проголосовали здесь https://www.mail-archive.com/[email protected]/msg114783.html
Ответ 3
Первое, что нужно попробовать - это перестроить ваши метаданные в репо, где вы загрузили артефакт моментального снимка.
См. " Управление запланированными задачами"
Перестроить файлы метаданных Maven
Эта задача перестроит файлы maven-metadata.xml
с правильной информацией и также проверит контрольные суммы (.md5
/.sha1
) для всех файлов в указанном репозитории/группе.
Обычно эта задача выполняется вручную для восстановления поврежденного репозитория.
Ответ 4
Я обновил maven с 3.3.9 до 3.5.0, обнаружил, что maven-metadata.xml был загружен один раз, и проблема была решена!
Поэтому я думаю, что это ошибка в maven 3.3.9, мое текущее решение обновляет maven до 3.5.0.
Ответ 5
Я столкнулся с той же проблемой при использовании Maven 3.3.9. Протестировано путем обновления до Maven 3.5.4, но проблема все еще существует. Проблема загрузки maven-metadata.xml дважды была вызвана подключаемым модулем spotbug maven v3.1.3. Это было решено в последнем плагине maven version- 3.1.12, на котором я тестировал.
Ответ 6
У меня была такая же проблема с maven 3.3.9. В моем случае, обновление до maven 3.5.4 решило проблему, не более "вдвое больше" на этапе развертывания по умолчанию.