eXist-db - повторное развертывание пакета библиотеки с использованием механизма автоматического развертывания или альтернативы - PullRequest
0 голосов
/ 29 марта 2020

Я создал свое собственное приложение библиотеки типов, используя существующий интерфейс eXide. Используя exide ui скачали пакет приложения (файл xar).

Для развертывания пакета на нашем сервере сборки с помощью файла docker я использую механизм автоматического развертывания:

Я копирую файл xar (zip) пакета моей библиотеки в папку /exist/autodeploy незадолго до команды точки входа (например, перед запуском существующей пристани).

Все работает нормально, библиотека развернута.

Однако это работает только один раз. Любое другое развертывание более новой версии библиотеки с использованием механизма автоматического развертывания заканчивается записью сообщения в файл expath-repo.log:

Application package "my library name"  already installed. Skipping. 

Я пытался поместить команды удаления (используя repo:undeploy, repo:unistall) в pre-install.xql сценарий, но, хотя сценарий удаляет библиотеку при запуске из редактора exide, во время автоматического развертывания, похоже, не срабатывает.

Есть ли вариант, как заставить автоматическое развертывание повторно развернуть пакет вместо того, чтобы пропустить его установку?

Если нет, то в каком направлении я должен пойти, чтобы автоматизировать процесс повторного развертывания библиотеки?

Большое спасибо за понимание.

1 Ответ

0 голосов
/ 02 апреля 2020

Глядя на код, который генерирует сообщение журнала, которое вы видите:

if (packages != null
            && (!enforceDeps || pkgVersion.equals(packages.latest().getVersion()))) {
    LOG.info("Application package " + name + " already installed. Skipping.");
    final Package pkg = packages.latest();
    return Optional.of(getTargetCollection(broker, pkg, getPackageDir(pkg)));
}

Казалось бы, вы получите это только при двух обстоятельствах:

  1. У вашего пакета есть зависимости в других пакетах, которые еще не установлены.
  2. Ваш пакет не имеет более нового номера версии, чем пакет с тем же именем, который уже установлен.
...