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
), если вы хотите более подробно обсудить эту тему.:)