У некоторых артефактов в моем локальном репозитории Nexus неверная контрольная сумма. Например (неверная контрольная сумма):
центральная кошка / org / codehaus / plexus / plexus-compiler-api / 1.8 / plexus-compiler-api-1.8.pom.sha1 95f3332c2bbace129da501424f297e47dd0e976b
vs (правильная контрольная сумма):
центральный sha1sum / org / codehaus / plexus / plexus-compiler-api / 1.8 / plexus-compiler-api-1.8.pom 4c2947f7e2d09b6e13da34292d897c564f1f9828
Похоже, в моем репозитории есть несколько артефактов, которые были загружены, когда была активна эта ошибка. .
Теперь у Maven Central правильная контрольная сумма (4c29 ...), но контрольные суммы в моем локальном репозитории Nexus остаются устаревшими. Я не знаю, как заставить мой локальный репозиторий проверить и / или повторно загрузить правильную контрольную сумму из центра.
Как правильно исправить мой локальный репозиторий. У этой проблемы не так много артефактов, поэтому я думаю, что могу (вручную) проверить, что они все еще существуют в центральном хранилище, и удалить их из моего локального репозитория. Они должны быть повторно кэшированы с правильными контрольными суммами. Есть ли способ лучше?
Обновление:
Я смотрел на это больше, и я почти уверен, что знаю, в чем источник моей проблемы. Один из артефактов, с которыми у меня возникли проблемы, это один (plexus-compiler-api: 1.8):
В моем репозитории и .pom, и .pom.sha1 имеют временную метку 29 марта 2010 года. В центральном месте .pom имеет временную метку 29 марта 2010 года, а .pom.sha1 - 21 апреля 2010 года. Я читал об обслуживании Nexus. Я предполагаю, что 21 апреля 2010 года Maven Central перестроила метаданные и проверила контрольные суммы, которые исправили неверный .sha1 для артефакта plexus-compiler-api: 1.8.
Согласно приведенной выше ссылке на Sonatype, я должен иметь возможность истечь кеши для Maven Central, и моя локальная установка будет извлекать новые копии чего-либо с более новыми временными метками, чем изначально кэшированные артефакты. Однако, судя по наблюдаемому мной поведению, я думаю, что он проверяет только временные метки для файлов артефактов, а не для файлов контрольной суммы.
Что касается моего локального репозитория Nexus, у меня самая последняя версия артефакта (29 марта 2010 г.), поэтому нет необходимости повторно загружать что-либо.
Я заметил, что моя версия Nexus довольно старая (1.5 против 1.9.1), поэтому я попробую обновить и посмотрю, справится ли новая версия лучше с истекающим сроком хранения кешей. Если нет, то я, наверное, посмотрю, что думают ребята из Sonatype (может, это ошибка?).