/bin/sh
на /bin/bash
, чтобы обеспечить совместимость с Ubuntu.${PROJECT_ID}$
, а также сохранение использования #{PROJECT_ID}
.【сервер】При резервном копировании базы данных добавлено поле исполнителя, которое может использоваться как поле для указания лица, выполнившего резервное копирование или восстановление
【сервер】Права доступа к конфигурации электронной почты изменены на права суперпользователя
【сервер】Исправлена проблема кодировки специальных символов при распространении скриптов на узлы (спасибо @ʟᴊx💎💎)
【сервер】Исправлена проблема удаления статистики узлов при удалении узлов (спасибо @以为)
Обновлен SpringBoot до версии 2.6.3 (спасибо @💎ℳ๓₯مصطفى斌💎@app)
【сервер】Исправлена проблема сохранения правил запрещённых команд при работе через SSH терминал (спасибо @Alex)
【сервер】Разрешена размытая совпадаемость при локальной сборке, позволяющая найти несколько подходящих результатов
【сервер】Исправлена проблема удаления узлов при распространении скриптов на узлы (спасибо @a19920714liou Gitee issues I4SHSP)
【сервер】Сохранение установочных пакетов при быстрой установке плагинов через SSH терминал, чтобы избежать повторного загрузки (спасибо @a19920714liou Gitee issues I4SHJC)
【сервер】Права доступа к быстрой установке плагинов через SSH терминал изменены на права администратора
12.【server】Автоматическое назначение каталога для публикации при сборке через SSH теперь осуществляется через выпадающий список, что улучшает удобство использования (спасибо @hjk2008 Gitee issues I4SICE)
【server】Исправлена проблема автоматического резервного копирования базы данных> 🙏 Особая благодарность: 💎ℳ๓₯مصطفى斌💎@app за вклад в архитектуру возможностей создания контейнеров
Текст внутри ссылки и специфичные имена остаются без изменений согласно правилам перевода.
system.nodeHeartSecond
.jpom.disabledGuide
(спасибо @Южный Железный Дуб).#disabled-template-auto-env
.Текст уже был на русском языке и требуемых правок не требовал.> ⚠️ Внимание: настоятельно рекомендуется обновиться до этой версии, так как она исправляет проблемы с блокировкой прав доступа.
--recover:h2db
) (спасибо @DaTudou)192.168.1.0/24
(спасибо @skyou)system.oldJarsCount
, который позволяет указывать количество старых JAR-файлов.system.timerMatchSecond
, отвечающий за включение секундной синхронизации для расписаний задач (спасибо @大土豆)10000
demo
(thanks to @A.Nevermore)> Внимание:
- Для уже существующих пользователей рекомендуется повторное привязывание прав доступа к рабочим пространствам (по умолчанию права на работу с рабочими пространствами отсутствуют).
jps
command; if errors occur, user messages are displayed (thanks to @...).--rest:ip_config
--rest:super_user_pwd
--rest:load_init_db
#{BUILD_ID}
, #{BUILD_NAME}
, #{BUILD_RESULT_FILE}
, #{BUILD_NUMBER_ID}
10. [server] Введен параметр автоматической резервной копии всей базы данных db.autoBackupIntervalDay
, по умолчанию резервная копия производится ежедневно, либо ночью в полночь, либо в полудень.type
включает значения: beforeStop
, start
, stop
, beforeRestart
.consoleLog.charset
для предотвращения смешивания символов при выполнении команд на некоторых серверах (спасибо @... ).Особое спасибо: участникам тестирования Jpom сообщества [🐠], [ʟᴊx], [hu丶向. . . 🤡] и другим
Обратите внимание:
[Особое примечание]: Поле группировки станет недействительным; все данные после обновления будут следовать за "по умолчанию рабочее пространство".
1: Обновление этого выпуска автоматически перенесет данные JSON в H2; если операция успешна, старые данные переместятся в директорию бэкапа
backup_old_data
.2: Во время обновления обратите внимание на логи в консоли на наличие ошибок.
3: Оперативное мониторинговое данные не будут автоматически обновлены из-за несовместимости данных полей; требуется повторная конфигурация пользователя.
4: Записи о тревожных событиях, записи сборок, оперативные записи могут содержать пустые поля из-за проблем совместимости полей.
5: Для пользователей без суперадминистраторских прав может возникнуть ситуация, когда они не смогут войти или использовать систему из-за отсутствия привязки к рабочему пространству; требуется привязка к рабочему пространству для входа.
6: После привязки к рабочему пространству пользователи смогут создавать, изменять и удалять данные в рамках своего рабочего пространства (включая управление узлами).
7: Этот процесс обновления может занять более двух минут (время зависит от объема данных); просим вас проявить терпение и наблюдать за выводом логов в консоли.
8: Не рекомендуется связывать один узел с несколькими серверами (может произойти путаница в рабочих данных).
jpom.name
jpom.logoFile
jpom.loginTitle
jpom.subTitle
tools.jar
filetools.jar
, мониторинг состояния Java-проектов реализован через команду jps
.build.checkDeleteCommand
, который позволяет пропустить проверку команды удаления при сборке (спасибо @Dream)[сервер] Управление отдельных репозиториев в процессе сборки
[сервер] Изменение способа хранения данных сборки на базу данных H2, вместо JSON-файлов
[сервер] Изменение адреса триггеров сборки
[агент] Добавлены допустимые расширения файлов для редактирования в менеджере файлов, а также кодировка этих файлов
[проект] В менеджере файлов добавлена кнопка "Редактирование", поддерживающая редактирование текстовых файлов (новый интерфейс пользователя синхронизирован с этой функцией)
[программа] При запуске выводится информация по умолчанию о IP-адресе и текущем порте
[bat] Управление командами Windows теперь выводит логи при старте, что помогает отслеживать состояние запуска
[сервер] Конфигурация времени ожидания передачи файлов на плагины (узлы) сделана глобальной на сервере, параметр конфигурации node.uploadFileTimeOut
(Благодарность @LW за предоставленное решение по issue I3O8YE)
[сервер] Добавлена возможность назначения прав доступа для ролей
(Благодарность @misaka за pull request)
[сервер] После успешной установки нового пакета, старые пакеты будут удалены
[сервер] В новой версии интерфейса управления системой и обновления узлов видны только администраторам системы
12.[сервер] В новой версии интерфейса добавлены параметры выполнения для шаблонов скриптов
(Благодарность @легкий_направленный_взгляд за issue I43G4B)
[сервер] В новой версии интерфейса добавлен файл common.js
[агент] В менеджере проектных файлов добавлена функция загрузки удалённых файлов
[агент] На главной странице мониторинга узлов добавлен показатель использования оперативной памяти (Linux система)
(Благодарность @большой_серый)
[сервер] Добавлен журнал действий SSH для удобства просмотра истории выполнения
[сервер] Добавлены свойства конфигурации H2-консоли на основе Spring Boot, параметр конфигурации spring.h2.console.enabled
[сервер] Поддержка загрузки удалённых файлов в режиме распространения узлов
(Благодарность @слезы_возвращаются_на_листву за issue I1LM27)
[сервер] Поддержка распространения файлов типа file
для проектов
[агент] Добавлена возможность конфигурации вывода логов в определённую директорию
[сервер] Поддержка каталогов сборочных продуктов с использованием шаблона AntPathMatcher
(Благодарность @говорящий_тот_кто_говорит за issue I455FM)
[сервер] Добавлена конфигурация размера кэша базы данных H2 [CACHE_SIZE]
[сервер] Добавлен параметр задержки выполнения триггеров сборки
24.[сервер] Добавлена глобальная функция поиска проектов
[агент] Добавлена возможность массового запуска, закрытия и перезапуска проектов
【сервер】Поддержка распаковки незаархивированных пакетов в узле сервера (спасибо @Sam, 风中飞絮 Gitee issues I3YNA5)
【сервер】Невозможность доступа через прокси nginx второго уровня (спасибо @hu丶向)
【сервер】Добавлена возможность онлайн-редактирования файлов с помощью ssh в узле сервера (спасибо @嗳啨 Gitee issues I4ADTA)
Поддержка автоматического анализа zip-пакетов при онлайн-обновлении (спасибо @Sam)
【сервер】Добавлено новое поле конфигурации количества попыток установки плагинов в узле сервера (спасибо @hu丶向)
【сервер】Добавлен новый параметр конфигурации времени ожидания ответа от API jpom.webApiTimeOut
(спасибо @hu丶向)
【сервер】Добавлена поддержка шаблонов тэгов в процессе сборки (спасибо @落泪归枫 Gitee issues I1LM1V)### Устранение ошибок и улучшение функциональности
【сервер】Добавлено ограничение времени ожидания при добавлении узла, чтобы избежать ситуации постоянного ожидания из-за неверной конфигурации
【сервер】Улучшено ограничение белого списка IP-адресов, чтобы избежать ситуации постоянного запрета доступа после ручного изменения конфигурации
【сервер】Добавлена справочная информация по настройке почтового ящика QQ Официальная документация QQ почты
【сервер】Исправление удаления временных файлов, возникающее исключение AccessDeniedException
, обновление прав доступа файла на чтение (отмена режима только для чтения)
【сервер】Добавление блока synchronized
при получении кода Git по пути репозитория
【сервер】Добавлена поддержка обновления текущей страницы узла сервера (обновление не возвращает на главную страницу)
【сервер】Изменение способа загрузки переменных окружения в файле jpom-service.sh
на проверочный метод
【агент】Исправление проблемы сохранения конфигурационного файла в Windows среде
【агент】Исправление проблемы отображения информации узла сервера на странице онлайн-обновления при отсутствии белого списка
【сервер】Проверка конфигурационного файла при быстром установлении плагинов через SSH больше не использует SpringBoot-специфический класс
11.【сервер】Добавлен вывод конкретного стека при возникновении исключения при запросе узла, а также добавлен фильтр исключений API, который по умолчанию не выводит стек (в соответствии с Gitee issues I3O8YE)
【сервер】Решение проблемы получения версий при обновлении узла (спасибо @misaka Gitee issues I41TDY)
Изменение расположения локальной директории данных на ${user.home}/jpom/xxxx
, а также перемещение пути логов в модуль проекта
【агент】Обновление зависимости commons-compress
(из GitHub advisories)
Адаптация авторизации WebSocket между агентом и сервером
[сервер] Обновление: при полной перезагрузке страницы меню перезагружается
Устранена ошибка форматирования времени при запросах исторических мониторинговых графиков (класс инструментов работы со строками) (спасибо @misaka Gitee PR)
[агент] Отменено обязательное проверочное тестирование конфигурационного файла nginx для узла сервера
[сервер] Пароль для хранилища теперь скрыт
Устранена проблема с отсутствием обновления капчи при выходе из системы (спасибо участникам группы Steve.Liu)
[агент] Очистка публикаций после удаления узлов приводила к ошибкам (спасибо @Sam)
22.[server] При создании проекта для распространения, если выполняются операции замены или добавления узлов, нажатие кнопки "Подтвердить" вызывает ошибку в консоли (спасибо @tan90°)> Особое примечание: В текущей версии доступ к хранилищу и сборке не поддерживает динамическое управление правами доступа. Для пользователей, которым важна безопасность прав доступа, рекомендуется подождать следующую версию с улучшенным управлением правами доступа (в случае вопросов можно обратиться в группу WeChat).
Внимание 1: Все данные сборки хранятся в базе данных H2. Предыдущие данные сборки автоматически синхронизируются. После первого запуска после обновления следует внимательно наблюдать за информацией в консоли. После успешного запуска следует проверить корректность синхронизации данных сборки и хранилища.
Внимание 2: Адрес триггеров сборки был обновлен, поэтому его требуется заново получить.
Внимание 3: Для обновления до данной версии необходимо обеспечить синхронизацию как агента, так и сервера. Если будет обновлен только сервер, некоторые функции, такие как контроль проектов через консоль, могут работать некорректно.
Внимание 4: После обновления до версии 2.7.x не рекомендуется производить понижение версии, поскольку это может привести к несовместимости данных.
nohup
ssh.initEnv
[agent] Внесено исправление проблемы с перезагрузкой Nginx (@大灰灰大 Gitee issue I40UE7)
[server] Внесено исправление проблемы автоматического создания многократных вложенных папок при загрузке файлов через SSH (@大灰灰大)
[server] Добавлено групповое отображение ролей с динамическими правами доступа
[agent] Добавлено конфигурирование времени ожидания завершения процесса при остановке проекта project.stopWaitTime
, а также вывод результата выполнения команды killОбновлены переменные среды при управлении командами bat для предотвращения проблем с отсутствием команды taskkill на некоторых серверах (спасибо @Sunny°晴天, @zt0330).
Обновлены версии зависимостей SpringBoot, Hutool и других сторонних библиотек.
Удалены старые UI (Thymeleaf, layui).
[сервер] Исправлено отсутствие переменных окружения при выполнении команд SSH.
[сервер] Добавлено отображение времени сборки при онлайн-обновлении, а также реализован параллельный деплой JAR-пакетов, проведена оптимизация части логики.
[сервер] Добавлены кнопки для скачивания продуктов сборки в истории проекта (спасибо @房东的喵。 ).
[сервер] Добавлено сообщение о состоянии соединения в консоль управления проекта для предотвращения недоступности после длительного периода бездействия.
[сервер] Добавлено сообщение о состоянии соединения в консоль управления SSH для предотвращения недоступности после длительного периода бездействия.
[сервер] Время обновления размера занимаемого пространства файлов в системной кэшированной памяти увеличено до каждых OnClickListener(10) минут.
[сервер] Исправлено отсутствие отображения раздела "распределенные проекты" после нажатия кнопки "Создать распределенный проект". Спасибо @xingenhi за помощь в этом (смотреть коммит) @Hotstrip.[сервер] Исправлено ограничение изменения имени пользователя при редактировании администратором.
[сервер] Добавлено скрытие части кнопок управления списками для снижения вероятности случайных действий.> Внимание: текущая версия является бета-версией. В проекте были обновлены многие зависимости, а также добавлены некоторые важные конфигурации (рекомендуется проверить их перед установкой). Если вы заметите какие-либо проблемы после обновления, пожалуйста, сообщите об этом в нашу группу WeChat, мы поможем вам как можно скорее.
Если вы уже установили Jpom и обновились до текущей версии, не меняйте учетные данные базы данных непосредственно. Если требуется изменение, подключитесь к базе данных напрямую и вручную измените пароль, прежде чем продолжить конфигурацию.
[agent+server] Добавлена возможность массового обновления узлов (внимание: старые версии узлов не поддерживают эту функцию; требуется обновление до последней версии для использования данной функции)
[server] Единица измерения времени ожидания конфигурации узлов изменена с миллисекунд на секунды, минимальное значение — 2 секунды
[server] Добавлен журнал объединения веток сборки (позволяет легче выявлять конфликты между ветками)### Устранение ошибок и оптимизация функционала
[сервер] Исправлена ошибка: при раскрытии одного из узлов на странице списка узлов после нажатия кнопки действия отображается новая строка с недействительными данными. Просмотреть запись коммита @Hotstrip
[сервер] Исправлена ошибка: проблема с загрузкой данных потока на странице мониторинга проекта Просмотреть запись коммита @Hotstrip
[сервер] Исправлена ошибка: низкоуровневые браузеры не поддерживают метод .replaceAll()
Просмотреть запись коммита @Yang Wei
[сервер] Обновлено: логика действий на странице ассоциации проекта с распределением (совместимость со старыми версиями) Просмотреть запись коммита @Li Daofu
[сервер] Оптимизировано: страница управления файлами проекта, теперь несколько раз показывается состояние загрузки при отображении дерева каталогов Просмотреть запись коммита @Hotstrip
[сервер] Исправлена ошибка: устранено возможное пустое состояние списка проектов узла при превышении времени ожидания запроса Просмотреть запись коммитаcom/dromara/Jpom/commit/e3182dfa04c27e63a29d67b292a7bfef834f875e) @Hotstrip
[agent] Исправлена ошибка: возникновение исключения NullPointerException при получении списка процессов через index
(спасибо @Xia Mu Qiu Chu)
[server] Исправлена ошибка: исключение при создании директории проекта из архивного файла Просмотреть соответствующую задачу
[server] Исправлена ошибка: скрытие опции выбора ветки при создании сборки, если выбран SVN Просмотреть соответствующую задачу Спасибо Alexa за открытие задачи @Hotstrip
[server] Исправлена ошибка: SSH-конфигурация публикации очистки истории файлов не удалась (спасибо @Джин Ченси)
[server] Обновлено: инициализация репозитория сборки с получением указанной ветки, без предварительного получения основной ветки и последующего перехода к указанной ветке (спасибо @Дахай Гай)
[server] При закрытии программы автоматически закрывается пул данных H2, чтобы избежать повреждения базовых данных
[server] Стилизация: Улучшение логотипа, страницы входа, начальной страницы Нажмите здесь для просмотра соответствующих записей коммита @长得丑活得久i【сервер】фикс бага: исправление проблемы постоянной загрузки данных списка nginx при отсутствии белого списка nginx нажмите здесь для просмотра соответствующего issue @长得丑活得久i
Добавлен файл .gitattributes
для управления кодировкой командных файлов и символами новой строки (спасибо @ℳ๓₯مصطفى斌)
[Сервер] При сохранении информации об электронной почте проверяется правильность конфигурации почты (спасибо @maybe)
[Сервер] Механизм токена использует jwt
[Сервер] В процессе сборки git добавлен вывод логов прогресса
[Сервер] Добавлены API и страницы для мониторинга действий
[Сервер] Улучшено автоматическое продление сроков действия JWT токенов
[Сервер] Добавлена система навигации для фронтенд-части (используется introJs)
[Сервер] Ограничение доступа по IP с возможностью настройки белого и черного списков
[Сервер] Добавлен способ создания скриптов автозапуска сервисов, ниже приведены способы автозапуска сервера:### Исправление ошибок и оптимизация функционала
[Сервер] Для всех глобальных сетевых запросов добавлен контроль состояния загрузки
[Сервер] Отключение состояния загрузки после получения логов сборки
[Агент] Поддержка периодической очистки логов в консоли, чтобы избежать увеличения размера файлов логов (спасибо @nanyouqiaomu)
[Сервер] Исправление определения состояния онлайн-обновления
[Сервер] Исправление ошибки при получении информации о процессах проекта (спасибо @onlyonezhongjinhui GitHub issues #7:[Proposal for functionality]: Build configuration, warning about alias mismatch)
[Сервер] Отображение реального расположения файлов проекта в менеджере файлов проекта
[Сервер] При отсутствии папки в менеджере файлов проекта состояние загрузки не исчезает (спасибо @onlyonezhongjinhui GitHub issues #6:[Ошибка]: Централизованная система уведомлений не поддерживает развертку на серверах Windows?)
[Сервер] Проблема с загрузкой вторичных и более высоких уровней директорий в менеджере файлов
[Сервер] Добавлено определение для мониторинга наличия настроек связи для оповещений пользователя (спасибо @maybe)
[Сервер] Автоматический вход при первоначальной установке недоступен
[Сервер] Локализация компонентов страницы используется zh_cn
[Сервер] Код активации недоступен на сервере (спасибо @hehaoting Gitee issues #I3E7XQ)
[Агент] Решение проблемы вывода "Failed to check connection: java.net.ConnectException: Connection refused: connect" из-за не закрытых соединений JMX**[Агент]** Решение проблемы медленного отклика списка Java процессов на главной странице (используется периодическая загрузка и кэширование данных)
[Сервер] Исправление ошибки: при раскрытии узла на странице списка узлов появляются новые строки с невалидными данными
[Сервер] Исправление ошибки: при клике на кнопку терминала на странице списка узлов, если узел не установлен, происходит ошибка в консоли. Перейти к соответствующему issue
[Сервер] Исправление ошибки: при управлении NGINX на странице управления узлом передача параметров метода завершения службы была некорректной. Перейти к соответствующему issue【сервер】оптимизация внешнего вида страницы конфигурации системы; при работе с небольшими экранами могут появиться несколько вертикальных полос прокрутки, что может скрывать нижние кнопки управления19. 【сервер】оптимизация взаимодействия через SSH терминал (отмена быстрой распаковки в предыдущих версиях, проверка команд удаления)
【сервер】оптимизация расположения таблиц, высоты и других стилей, чтобы они лучше соответствовали странице. Подробнее см. issue
Внимание:
- Проверка команд удаления временно отключена (будет дорабатываться в последующих версиях)
- В этой версии добавлена новая конфигурация способа запуска Jpom сервиса, требуется обновление файлов Server.sh и Agent.sh. Онлайн-обновление обновляет только приложение, а не файлы управления. Если вы хотите использовать эту функцию, вам потребуется ручной перезапрос соответствующих файлов. (Если вы ранее настраивали файлы управления, вам потребуется различное перезаполнение)> Автоматический запуск при старте:
- На сервере найдите файл Server.sh, выполните команду
. /Server.sh create
. Это создаст файл jpom-server в текущей директории, который будет использоваться как автоматически запускающийся файл на сервере.- На агенте найдите файл Agent.sh, выполните команду
. /Agent.sh create
. Это создаст файл jpom-agent в текущей директории, который будет использоваться как автоматически запускающийся файл на агенте.- Переместите только что созданные автоматически запускающиеся файлы в директорию /etc/init.d/.
- Установите права доступа к этим файлам в директории /etc/init.d/, выполнив команду
chmod +x jpom-server
илиchmod +x jpom-agent
.- Добавьте эти файлы в список chkconfig, чтобы они запускались при старте системы, выполнив команду
chkconfig --add jpom-server
илиchkconfig --add jpom-agent
.- После выполнения шага 4 можно управлять службой Jpom командами
service jpom-xxx {status | start | stop}
.- В настоящее время тестировалось только на серверах CentOS, на других серверах эта функция может работать некорректно.