Maven развернуть границы транзакции

Как менеджер хранилища узнает, когда maven запускает развертывание и заканчивает его? Например, когда выполняется команда mvn deploy, maven загружает кучу файлов. Теперь, как сервер должен знать, когда maven завершит загрузку всех файлов?

Я думал, что файл maven-metadata.xml на уровне пакета является последним обновляемым файлом, но понял, что это не всегда так. Например, javadocs обновляется после обновления до уровня пакета maven-medata.xml

Существуют ли какие-либо спецификации в каком порядке maven должен обновлять репозиторий?

1 ответ

Для этого нет RFC, о котором я знаю.

Я хорошо знаком с Maven и его метаданными. Я не говорю о каком-либо конкретном менеджере хранилища в данный момент. Я всего лишь реконструирую логику для этого (главным образом, догадки, но также и то, как я бы это реализовал; между прочим, я работаю над реализацией менеджера хранилища). Я хотел бы пригласить разработчиков Nexus, Artifactory и Archiva также поделиться своими мыслями, взглядами, опытом по этому виду функциональности, если они, конечно, хотят поделиться.

По сути, то, что менеджер хранилища (или мог бы), вероятно, сделал бы, это:

  • При развертывании артефакта (и всех сопровождающих его файлов) соответствующий формат или (поставщик макета - Maven, Nuget, NPM) инициирует новую транзакцию для базового пути артефакта + версия (org/foo/bar/1.0) с периодом отсрочки
  • Пока файл артефакта развертывается по базовому пути для этой версии, транзакция будет открыта
  • "Транзакция" будет закрыта автоматически, когда:
    • В течение заданного периода ожидания активность не указана
    • Или последний идентифицируемый файл загружен / обновлен (в случае Maven, обычно это будет maven-metadata.xml)

@ user93796: В последнее время вы задаете много вопросов о метаданных Maven и Maven. Не стесняйтесь связаться со мной по электронной почте (my SO username @ gmail.com), если вы хотите более подробно обсудить эту тему.:)

Другие вопросы по тегам