Временная метка в файле моментальных снимков 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 для удаления эфира?

Ответ 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 решило проблему, не более "вдвое больше" на этапе развертывания по умолчанию.