1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dromara-Jpom

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 47 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 04.03.2025 07:55 9d11278

Логотип

【Dromara】🚀 Легкий и незначительно вторгающийся в систему онлайн-строительство, автоматическое развертывание, повседневное обслуживание и мониторинг проекта программное обеспечение

Также это нативное программное обеспечение для управления операциями / Английский

Звездочки Gitee Звездочки GitHub Звездочки Gitcode Лицензия

JDK Codacy Версия выпуска Pull Docker

👉 Международный сайт: https://jpom.dromara.org 👈

👉 Китайский сайт: https://jpom.top 👈

👉 Русскоязычный сайт: https://jpom.top 👈

## 😭 В повседневной разработке, есть ли у вас следующие болевых точках?
  • Команда не имеет профессиональных операторов эксплуатации, поэтому разработчики вынуждены выполнять обязанности операторов, что требует вручную сборку и развертывание проектов.
  • У разных проектов свои команды сборки и развертывания.
  • Есть потребность в сборке проектов для различных окружений (разработка, тестирование, продакшн).
  • Нужно одновременно отслеживать состояние нескольких проектов.
  • Необходимо скачать SSH-инструмент для удаленного подключения к серверу.
  • Нужно скачать FTP-инструмент для передачи файлов на сервер.
  • При работе с несколькими серверами синхронизация учетных записей и паролей между различными компьютерами затруднена.
  • Хочется использовать некоторые автоматизированные инструменты, но они требуют высоких показателей производительности сервера и сложной установки.
  • Имеются специфические требования к автоматизированным инструментам, желание самостоятельно модифицировать проект, однако существующие инструменты слишком сложны.

Если проект является распределённым, то вышеописанные шаги становятся ещё более сложными.

Доверьтесь Jpom для решения этих проблем! Однако это лишь базовые функции, решаемые с помощью Jpom.### 😁 После использования Jpom

Текст уже на русском языке, поэтому нет необходимости в переводе. Оригинальное форматирование сохранено.- Удобное управление пользователями 1. Мониторинг действий пользователей, отправка уведомлений по электронной почте при выполнении конкретных операций 2. Управление несколькими пользователями, независимое управление правами доступа к проектам (управление правами на загрузку и удаление), полное отслеживание действий, использование рабочих пространств для изоляции прав доступа 3. Возможность включения двухфакторной аутентификации (MFA) для повышения безопасности аккаунтов

  • Интерфейс для реального времени просмотра состояния проекта, управления консолью логов и файлами проекта
    1. Внедрение изменений в текстовых файлах проекта онлайн
  • Управление контейнерами Docker и кластерами Docker Swarm (Docker UI)
  • Онлайн-терминал SSH, позволяющий легко управлять серверами без необходимости использования таких программ как PuTTY, Xshell, FinalShell
    1. После входа в систему Jpom вам не требуется знать пароли серверов
    2. Возможность запрещения выполнения определённых команд через SSH, что позволяет избежать выполнения высокорисковых команд, а также автоматическое отслеживание выполнения команд
    3. Настройка директорий файлов, просмотр и управление файлами проекта и файлами конфигурации онлайн
    4. Выполнение скриптов с использованием шаблонов команд SSH онлайн, а также возможность их периодического выполнения 5.Внесение изменений в текстовые файлы онлайн
    5. Легкая реализация базовой функциональности "форта"
  • Одновременная установка нескольких машин для распределенных проектов
  • Онлайн-конструирование без необходимости ручного обновления и обновления версий проекта
    1. Поддержка получения репозиториев Git и SVN
    2. Поддержка конструирования контейнеров (Docker)
    3. Поддержка публикации через SSH
    4. Поддержка периодического конструирования
    5. Поддержка триггеров сборки через WebHooks
  • Поддержка онлайн-редактирования конфигурационных файлов Nginx и автоматической перезагрузки и других операций
    1. Управление состоянием Nginx, управление сертификатами SSL
  • Мониторинг состояния проекта, автоматическая активация тревоги при возникновении ошибок и попытки автоматического восстановления
    1. Поддержка уведомлений по электронной почте, DingTalk группам и WeChat группам, активное отслеживание состояния работы проекта
  • Шаблоны скриптов узлов и их периодическое выполнение или активация триггерами, расширение возможностей
  • Конфигурация авторизации важных путей, предотвращение случайного изменения системных файлов пользователем### 🔔 Особое уведомление>
  1. На некоторых Windows-серверах могут возникнуть проблемы совместимости из-за особенностей системы. В связи с этим рекомендуется провести полное тестирование в реальных условиях. Совместимость с Linux в настоящее время хорошая.
  2. Серверную часть и плагины следует установить в разные директории, а не в одну и ту же.
  3. При удалении Jpom-плагинов или серверной части, сначала остановите соответствующие службы, затем удалите соответствующие исполняемые файлы, папки логов и папки данных.
  4. Локальная сборка зависит от системной среды. Если сборочный скрипт требует Maven или Node.js, то соответствующую среду следует установить на сервере сборки. Если среда была установлена после запуска сервера, её необходимо будет перезапустить через командную строку, чтобы изменения вступили в силу.
  5. Установка плагина на Ubuntu/Debian может завершиться ошибкой. В этом случае создайте файл .bash_profile в домашней директории текущего пользователя.
  6. После обновления до версии 2.7.x не рекомендуется производить обратное обновление, так как это может привести к проблемам совместимости данных.
  7. Поскольку в текущих версиях 2.x.x плагины и сервер используют протокол HTTP для взаимодействия, требуется сетевое соединение между ними. Обратите внимание на это при использовании.
  8. Версия Jpom 3.0 уже находится в процессе подготовки.Ожидайте выхода новой версии. ### 🗒️ История версийПеред обновлением обязательно ознакомьтесь с CHANGELOG.md

📥 Установка Jpom

Jpom поддерживает несколько способов установки, чтобы удовлетворить различные потребности пользователей. Вам достаточно выбрать один из них.

Способ 1: 🚀 (Рекомендовано) Однокликовая установка (Linux)

Однокликовая установка серверной части

Внимание: Каталог установки находится в каталоге выполнения команд!

⚠️ Особое внимание: При однокликовой установке убедитесь, что команды выполняются не в одном и том же каталоге! То есть, Серверная часть и Агентская часть не должны быть установлены в одном каталоге!

Если вам требуется изменить путь хранения данных и логов серверной части, измените параметр конфигурации jpom.path в файле application.yml.

# По умолчанию однокликовая установка
curl -fsSL https://jpom.top/docs/install.sh | bash -s Server jdk+default
# По умолчанию однокликовая установка + автоматическое создание службы запуска при старте системы
curl -fsSL https://jpom.top/docs/install.sh | bash -s Server jdk+default+service

# Установка серверной части и среды JDK
yum install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Server jdk

# Установка серверной части и среды JDK/Maven
yum install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Server jdk+mvn
```# Ubuntu
apt-get install -y wget && \
wget -O install.sh https://jpom.top/docs/install.sh && \
bash install.sh Agent jdk

После успешного запуска порт агентской части будет равен 2123, и вы сможете получить доступ к странице управления через http://127.0.0.1:2123/. Если вы не используете этот компьютер для доступа, замените 127.0.0.1 адресом IP вашего сервера.

Если вы не можете получить доступ к системе управления, выполните команду systemctl status firewalld для проверки активности брандмауэра, если состояние показывает зелёный цвет Active: active (running), вам следует разрешить доступ к порту 2123.

# Разрешение доступа к порту управления системы 2123
firewall-cmd --add-port=2123/tcp --permanent
# Перезапустите брандмауэр для применения изменений
firewall-cmd --reload

Если после открытия порта на уровне операционной системы вы всё ещё не можете получить доступ, а вы используете облачный сервер, обратитесь к административному интерфейсу облачного сервера для проверки правил безопасности группы, разрешающих доступ к порту 2123.

⚠️ Внимание: В Linux существует множество типов брандмауэров: Firewall, Iptables, SELinux и т.д., поэтому при проверке конфигураций брандмауэра убедитесь, что все они проверены.#### Установка агента одним щелчком мыши> Если сервер, который также требуется управлять, уже установлен с серверной частью, то на этом же сервере следует установить агентскую часть (на одном сервере можно одновременно установить как серверную, так и агентскую части).

⚠️ Внимание: при установке агента одним щелчком мыши убедитесь, что команды выполнены в разных директориях, то есть серверная и агентская части не должны быть установлены в одной и той же директории!

Если вам нужно изменить пути хранения данных и логов агента, измените конфигурацию свойства jpom.path в файле application.yml.```shell

Установка агента одним щелчком мыши по умолчанию

curl -fsSL https://jpom.top/docs/install.sh | bash -s Agent jdk+default

Установка агента одним щелчком мыши по умолчанию + автоматическое создание службы для автозапуска

curl -fsSL https://jpom.top/docs/install.sh | bash -s Agent jdk+default+service

Установка агента и JDK среды

yum install -y wget &&
wget -O install.sh https://jpom.top/docs/install.sh &&
bash install.sh Agent jdk

Ubuntu

apt-get install -y wget &&
wget -O install.sh https://jpom.top/docs/install.sh &&
bash install.sh Agent jdk


При успешном запуске порт агента будет равен `2123`, и он будет доступен для использования серверной частью.

### Второй способ: 📦 Установка с помощью контейнеризации

> ⚠️ Внимание: для установки с использованием контейнеризации сначала установите Docker, [перейти к документации по установке Docker](https://jpom.top/pages/b63dc5/)

#### Однокомандная установка

```shell
docker run -p 2122:2122 --name jpom-agent jpomdocker/jpom

Использование монтирования для хранения данных (может вызвать проблемы совместимости в некоторых окружениях)

  1. Али-репозиторий
docker pull registry.cn-chengdu.aliyuncs.com/jpomdocker/jpom
mkdir -p /home/jpom-agent/logs
mkdir -p /home/jpom-agent/data
mkdir -p /home/jpom-agent/conf
docker run -d -p bkp2122:2122 \
    --name jpom-agent \
    -v /home/jpom-agent/logs:/usr/local/jpom-agent/logs \
    -v /home/jpom-agent/data:/usr/local/jpom-agent/data \
    -v /home/jpom-agent/conf:/usr/local/jpom-agent/conf \
    jpomdocker/jpom
  1. Репозиторий DockerHub
docker pull jpomdocker/jpom
mkdir -p /home/jpom-agent/logs
mkdir -p /home/jpom-agent/data
mkdir -p /home/jpom-agent/conf
docker run -d -p 2122:2122 \
    --name jpom-agent \
    -v /home/jpom-agent/logs:/usr/local/jpom-agent/logs \
    -v /home/jpom-agent/data:/usr/local/jpom-agent/data \
    -v /home/jpom-agent/conf:/usr/local/jpom-agent/conf \
    jpomdocker/jpom
```

#### Хранение данных с использованием контейнерных томов1. Алиоблока

```shell
docker pull registry.cn-chengdu.aliyuncs.com/jpomdocker/jpom
docker volume create jpom-server-data
docker volume create jpom-server-logs
docker volume create jpom-server-conf
docker run -d -p 2122:2122 \
    --name jpom-server \
    -v jpom-server-data:/usr/local/jpom-server/data \
    -v jpom-server-logs:/usr/local/jpom-server/logs \
    -v jpom-server-conf:/usr/local/jpom-server/conf \
    jpomdocker/jpom
```

2. DockerHub репозиторий

```shell
docker pull jpomdocker/jpom
docker volume create jpom-server-data
docker volume create jpom-server-logs
docker volume create jpom-server-conf
docker run -d -p 2122:2122 \
    --name jpom-server \
    -v jpom-server-data:/usr/local/jpom-server/data \
    -v jpom-server-logs:/usr/local/jpom-server/logs \
    -v jpom-server-conf:/usr/local/jpom-server/conf \
    jpomdocker/jpom
```

> Установка в контейнерах предоставляется только для серверной части. Из-за изоляции окружения контейнера от хостовой машины многие функции плагинов работают некорректно, поэтому контейнеризация плагинов имеет мало смысла.
>
> Инструкции по установке Docker, конфигурации образов, автоматического запуска, поиска директории после установки можно найти здесь: [https://jpom.top/pages/b63dc5/](https://jpom.top/pages/b63dc5/)
>
> При работе в старых версиях Docker могут возникнуть ошибки типа `ls: cannot access '/usr/local/jpom-server/lib/' : Operation not permitted`. В этом случае потребуется добавление параметра `--privileged`.
>
> Пример: `docker run -p 2122:2122 --name jpom-server jpomdocker/jpom --privileged`

### Метод 3: 💾 Скачивание и установка1. Скачайте пакет установки [https://jpom.top/pages/all-downloads/](https://jpom.top/pages/all-downloads/)
2. Распакуйте файлы
3. Установите плагины
   1. Директория `agent-x.x.x-release` содержит все файлы для установки плагинов
   2. Загрузите её на соответствующую машину (все файлы)
   3. Запустите плагины. Для Windows используйте bat-скрипт, а для Linux — sh-скрипт. (Если вы видите мешанину символов или скрипт не выполняется корректно, проверьте соответствие кодировки и знаков новой строки.)
   4. По умолчанию порт для работы плагинов: `2123`.4. Установите сервер
   1. Директория `server-x.x.x-release` содержит все файлы для установки сервера
   2. Загрузите её на соответствующую машину (все файлы)
   3. Запустите сервер. Для Windows используйте bat-скрипт, а для Linux — sh-скрипт. (Если вы видите мешанину символов или скрипт не выполняется корректно, проверьте соответствие кодировки и знаков новой строки.)
   4. По умолчанию порт для работы сервера: `2122`, страница управления доступна по адресу `http://127.0.0.1:2.122/` (если вы хотите получить доступ к нему с другой машины, замените `127.0.0.1` на IP-адрес вашей серверной машины)

### Способ 4: ⌨️ Установка с компиляцией1. Посетите главную страницу проекта [Jpom](https://gitee.com/dromara/Jpom) на Gitee и получите последний полный код (рекомендуется использовать ветку master)
2. Перейдите в директорию `web-vue`, выполните команду `npm install` (подготовьте среду Vue заранее и установите зависимости, подробнее можно узнать из файла README.md в директории `web-vue`)
3. Выполните команду `npm run build` для сборки проекта Vue
4. Возвратитесь в корневую директорию проекта и выполните команду: `mvn clean package`
5. Установите агентскую часть
   1. Найдите пакет установки агента в директории `modules/agent/target/agent-x.x.x-release`
   2. Упакуйте и загрузите на сервер (весь каталог)
   3. Запустите агентскую часть, используя bat-файл для Windows или sh-файл для Linux (если возникают проблемы с отображением символов или невозможностью запуска, проверьте соответствие кодировки и знаков новой строки)
   4. По умолчанию порт запуска: `2123`
6. Установите серверную часть
   1. Найдите пакет установки серверной части в директории `modules/server/target/server-x.x.x-release`
   2. Упакуйте и загрузите на сервер (весь каталог)
   3. Запустите серверную часть, используя bat-файл для Windows или sh-файл для Linux (если возникают проблемы с отображением символов или невозможностью запуска, проверьте соответствие кодировки и знаков новой строки)
   4. По умолчанию порт запуска серверной части: `2122`. Для доступа к административному интерфейсу используйте адрес: `http://127.0.0.1:2122`1:2122/` (если вы хотите получить доступ с другого компьютера, замените `127.0.0.1` на IP-адрес вашего сервера)`> Также можно использовать скрипт `script/release.bat` для Windows или `script/release.sh` для Linux для быстрой сборки.

### Способ 5: 📦 Однокликовый запуск через Docker Compose

- Не требуется никакой подготовки окружения, автоматическая компиляция и сборка

> Необходимо изменить значение токена в файле `.env`

```shell
yum install -y git
git clone https://gitee.com/dromara/Jpom.git
cd Jpom
docker-compose -f docker-compose.yml up
# docker-compose -f docker-compose.yml up --build
# docker-compose -f docker-compose.yml build --no-cache
# docker-compose -f docker-compose-local.yml up
# docker-compose -f docker-compose-local.yml build --build-arg TEMP_VERSION=0.0
```

### Дополнительные команды:

```shell
# docker-compose -f docker-compose.yml up --build
# docker-compose -f docker-compose.yml build --no-cache
# docker-compose -f docker-compose-local.yml up
# docker-compose -f docker-compose-local.yml build --build-arg TEMP_VERSION=0.0
# docker-compose -f docker-compose-cluster.yml up --build
```### Способ 6: 💻 Компиляция и запуск

1. Посетите страницу [Jpom](https://github.com/dromara/Jpom) на GitHub и получите последнюю полную версию кода (рекомендуется использовать ветку master, если вы хотите протестировать новые возможности, используйте ветку dev).
2. Запустите плагин
    1. Запустите `org.dromara.jpom.JpomAgentApplication`.
    2. Обратите внимание на информацию по умолчанию о логине и пароле, отображаемую в консоли.
    3. По умолчанию порт запуска плагина: `2123`.
3. Запустите сервер
    1. Запустите `org.dromara.jpom.JpomServerApplication`.
    2. По умолчанию порт запуска сервера: `2122`.
4. Создайте Vue-страницу, перейдите в директорию `web-vue` (необходимо наличие локальной среды разработки с Node.js и npm).
5. Установите зависимости проекта Vue, выполните команду `npm install` в консоли.
6. Запустите режим разработки, выполните команду `npm run dev` в консоли.
7. Откройте страницу фронтенда по адресу, указанному в консоли: `http://127.0.0.1:3000/` (при доступе с другого компьютера замените `127.0.0.1` на IP вашего сервера).

## Управление Jpom командами1. Для системы Windows используются bat-файлы.

```bash
# Скрипты управления серверной частью (консоль)
./bin/Server.bat start   # Запустить Jpom сервер
./bin/Server.bat stop    # Остановить Jpom сервер
./bin/Server.bat restart # Перезапустить Jpom сервер
./bin/Server.bat status  # Проверить состояние работы Jpom сервера
# Скрипты управления серверной частью (панель управления), введите действия согласно указаниям панели
./bin/Server.bat

# Скрипты управления агентской частью
./bin/Agent.bat start   # Запустить Jpom агентскую часть
./bin/Agent.bat stop    # Остановить Jpom агентскую часть
./bin/Agent.bat restart # Перезапустить Jpom агентскую часть
./bin/Agent.bat status  # Проверить состояние работы Jpom агентской части
# Скрипты управления агентской частью (панель управления), введите действия согласно указаниям панели
./bin/Agent.bat
```

> После запуска в системе Windows следует следить за состоянием запуска по логам. В случае возникновения проблем с отображением символов проверьте или измените кодировку. Для bat-файлов в Windows рекомендуется использовать кодировку `CP1251` (Windows-1251).

2. Для системы Linux используются sh-файлы.

```bash
# Серверная часть
./bin/Server.sh start     # Запустить Jpom сервер
./bin/Server.sh stop      # Остановить Jpom сервер
./bin/Server.sh restart   # Перезапустить Jpom сервер
./bin/Server.sh status    # Проверить состояние работы Jpom сервера
./bin/Service.sh install  # Создать службу приложения Jpom сервера (jpom-server)
```# Агентская часть
./bin/Agent.sh start     # Запустить Jpom агентскую часть
./bin/Agent.sh stop      # Остановить Jpom агентскую часть
./bin/Agent.sh restart   # Перезапустить Jpom агентскую часть
./bin/Agent.sh status    # Проверить состояние Jpom агентской части
./bin/Service.sh install # Создать службу Jpom агентской части (jpom-agent)

## Управление службой Jpom

> Конфигурация службы приведена здесь как пример; на практике её можно настроить в соответствии со своими потребностями.
>
> После успешного выполнения команды `./bin/Service.sh install`:
>
> systemctl {status | start | stop | restart} jpom-server
>
> systemctl {status | start | stop | restart} jpom-agent

## ⚙️ Настройка параметров Jpom

В корневой директории проекта:

### Настройка программы `./conf/application.yml`

1. Пример конфигурации для агента:
   [`application.yml`](https://gitee.com/dromara/Jpom/blob/master/modules/agent/src/main/resources/config_default/application.yml)
2. Пример конфигурации для сервера:
   [`application.yml`](https://gitee.com/dromara/Jpom/blob/master/modules/server/src/main/resources/config_default/application.yml)

### Проектный журнал `./conf/logback.xml`

1. Пример конфигурации агента:
   [`logback.xml`](https://gitee.com/dromara/Jpom/blob/master/modules/agent/src/main/resources/config_default/logback.xml)
2. Пример конфигурации сервера:
   [`logback.xml`](https://gitee.com/dromara/Jpom/blob/master/modules/server/src/main/resources/config_default/logback.xml)

## 📝 Часто задаваемые вопросы, руководства

- [Главная страница документации](https://jpom.top/)
- [ЧАВО](https://jpom.top/pages/FQA/)
- [Объяснение терминологии](https://jpom.top/pages/FQA/proper-noun/)### Практические примеры

> Внутри могут содержаться некоторые изображения, которые загружаются медленнее.

1. [Локальная сборка + SSH-деплой Java-проекта](https://jpom.top/pages/practice/build-java-ssh-release/)
2. [Локальная сборка + деплой NodeJS-проекта](https://jpom.top/pages/practice/build-node-release/)
3. [Локальная сборка + SSH-деплой NodeJS-проекта](https://jpom.top/pages/practice/build-node-ssh-release/)
4. [Локальная сборка + управление Python-проектом DSL](https://jpom.top/pages/practice/project-dsl-python/)
5. [Управление Java-проектом DSL](https://jpom.top/pages/practice/project-dsl-java/)
6. [Управление установкой Nginx](https://jpom.top/pages/practice/node-nginx/)
7. [Управление Docker](https://jpom.top/pages/practice/docker-cli/)
8. [Контейнерная сборка + деплой Java-проекта](https://jpom.top/pages/practice/build-docker-java-node-release/)
9. [Просмотр новых практических примеров >>](https://jpom.top/pages/practice/)

## Примеры кода сборки проектов

1. [Пример кода Jboot](https://gitee.com/keepbx/Jpom-demo-case/tree/master/jboot-test)
2. [Пример кода SpringBoot (ClassPath)](https://gitee.com/keepbx/Jpom-demo-case/tree/master/springboot-test)
3. [Пример кода SpringBoot (Jar)](https://gitee.com/keepbx/Jpom-demo-case/tree/master/springboot-test-jar)
4. [Пример кода NodeJS Vue (antdv)](https://gitee.com/keepbx/Jpom-demo-case/tree/master/antdv)
5. [Пример кода Python](https://gitee.com/keepbx/Jpom-demo-case/tree/master/python)

> Компиляция Node.js в указанной директории:

```bash
yarn --cwd xxxx/ install
yarn --cwd xxxx/ build
```

> Компиляция Maven в указанной директории:

```bash
mvn -f xxxx/pom.xml clean package
```

## 🛠️ Общая архитектура

![jpom-func-arch](https://jpom.top/images/jpom-func-arch.png)## 🐞 Общение, отчеты об ошибках, предложения и т.д.

1. Быстро просканируйте QR-код группы WeChat слева и присоединяйтесь к нам для обсуждения! (При добавлении ассистента, пожалуйста, укажите в примечании "Jpom" для входа в группу.)
2. Открытые проекты не могут существовать без поддержки сообщества. Если проект помог вам и вы хотите сделать небольшой подарок, мы будем рады, если вы просканируете QR-код [пополнения через WeChat и Alipay](https://jpom.top/images/qrcode/praise-all.png) 
или воспользуетесь [возможностью пополнения через Gitee](https://gitee.com/dromara/Jpom)
(найдите кнопку "Поддержка" на главной странице проекта). [Запись благодарностей](https://jpom.top/pages/praise/publicity/).
3. Купить товары, связанные с открытым исходным кодом: [введение товаров](https://jpom.top/pages/shop/).
4. Для услуг технической поддержки корпоративных клиентов свяжитесь с нами напрямую для обсуждения условий сотрудничества.
5. Обратная связь по ошибкам, предложения — добро пожаловать в раздел [issues](https://gitee.com/dromara/Jpom/issues), где разработчики будут регулярно проверять и отвечать.
6. Чтобы принять участие в развитии проекта, пожалуйста, ознакомьтесь с [руководством по вкладу](#вклад-в-проект).

Спасибо всем, кто делает пожертвования и вносит свой вклад! Ваша поддержка является движущей силой нашего постоянного развития!<p align="center">
<img src="https://jpom.top/images/qrcode/praise-all.png" style="" alt="praise img">
</p>

## 💖 Продукция

Чтобы лучше поддерживать открытое программное обеспечение, мы решили запустить производство продукции.

Приобретение продукции позволяет вам получить небольшой сувенир, а нам — прибыль от продажи этой продукции (цена нашей продукции будет немного выше рыночной; если это вас беспокоит, не делайте заказ).

<p align="center">
<img src="https://jpom.top/images/qrcode/weixin-shop-jpom66.png" style="" alt="shop home">
</p>

## 🔨 Инструкция по внесению вклада

> Подача вклада считается подписанием [CLA](https://gitee.com/dromara/Jpom/blob/master/CLA.md) соглашения

### Важные замечания

Проект Jpom как открытый проект не может существовать без поддержки сообщества. Мы рады любым изменениям и предложениям от любого человека. Вклад любой важности поможет тысячам пользователей и разработчиков за вашими плечами. Ваш вклад также будет всегда присутствовать в списке вкладчиков проекта, что и есть суть открытого проекта!

Для обеспечения качества и стандарта кода проекта, а также помощи вам быстрее понять структуру проекта, рекомендуется прочесть следующие материалы перед внесением вклада:

- [Инструкция по внесению вклада в Jpom](https://gitee.com/dromara/Jpom/blob/master/CODE_OF_CONDUCT.md)
- [Нормы оформления текста на китайском и английском языках](https://gitee.com/dromara/Jpom/blob/dev/typography-specification.md)### Шаги по внесению вклада

1. Создайте форк этого репозитория.

2. После создания форка вы получите репозиторий, который полностью совпадает с этим репозиторием, клонируйте его на локальную машину.

   Обратите внимание на замену ссылки на `ветку` и `пользователя`.

   Если вы вносите вклад в код, используйте ветку `dev`; если вы вносите вклад в документацию, используйте ветку `docs`.

   ```bash
   git clone -b ветка https://gitee.com/пользователь/Jpom.git
   ```

3. Измените код/документацию, после чего сделайте коммит.

   ```bash
   # Добавьте изменённые файлы в область подготовки
   git add .
   # Выполните коммит в локальный репозиторий, указав, какие именно изменения были внесены
   git commit -m 'Укажите, какие изменения были внесены'
   # Отправьте изменения на удалённый репозиторий, заменив ветку на dev или docs
   git push origin ветка
   ```

4. Авторизуйтесь в своём репозитории, где вы увидите запрос на слияние PR. Нажмите кнопку "Объединить", чтобы ждать одобрения администратором вашего вклада.### Описание веток проекта| Ветка      | Описание                                               |
|---------|-----------------------------------------------------|
| master  | Основная ветка, защищённая от изменения, не принимает Pull Requests. После успешного тестирования ветки beta она будет объединена с этой веткой. |
| beta    | Ветка бета-версий, защищённая от изменения, не принимает Pull Requests. После успешного тестирования ветки dev она будет объединена с этой веткой. |
| dev     | Разработочная ветка, которая принимает Pull Requests. Пожалуйста, отправляйте Pull Requests именно в эту ветку. |
| docs    | Ветка проектной документации, которая принимает Pull Requests. Предназначена для описания функциональности проекта, а также для сбора часто задаваемых вопросов. | В настоящее время используются в основном ветки `dev` и `docs`, принимаются pull requests с изменениями. Остальные ветки являются архивными, и вкладчики могут ими пренебрегать. |### Вкладчики

<a href="https://github.com/dromara/Jpom/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=dromara/Jpom" alt="вкладчики"/>
</a>

Сделано с помощью [contrib.rocks](https://contrib.rocks).

## 🌍 Знание Созвездия

<p align="center">
<img src="https://jpom.top/images/zsxq.jpg" alt="Присоединиться к знанию Созвездия, чтобы узнать больше информации">
</p>

## 🔔 Рекомендация лучших проектов| Название проекта        | Адрес проекта                                                                                       | Описание проекта                                      |
|---------------------|----------------------------------------------------------------------------------------------------|------------------------------------------------------|
| SpringBoot_v2       | [https://gitee.com/bdj/SpringBoot_v2](https://gitee.com/bdj/Springboot_v2)                         | Базирующийся на Spring Boot чистый стартовый набор                          |
| TLog GVP Проект     | [https://gitee.com/dromara/TLog](https://gitee.com/dromara/tlog)                                     | Лёгкий инструмент для распределённой трассировки логов, который можно подключить за 10 минут                   |
| Sa-Token            | [https://gitee.com/dromara/sa-token](https://gitee.com/dromara/satoken)                              | Это может быть самый полный Java-фреймворк для управления доступом!                               |
| Erupt               | [https://gitee.com/erupt/erupt](https://gitee.com/erupt/erupt)                                       | Нулевой фронтальный код, чисто аннотационное развитие административного интерфейса                      |
| hippo4j             | [https://gitee.com/magegoofy/hippo4j](https://gitee.com/magegoofy/hippo4j)                           | Сильный динамический фреймворк управления потоками, со встроенным мониторингом и оповещением.                |
| HertzBeat           | [https://gitee.com/dromara/hertzbeat](https://gitee.com/dromara/hertzbeat)                           | Простой и удобный облачный системный мониторинг, не требует установки агента, мощная возможность настройки мониторинга.|## 🤝 Отзывы

- Спасибо компании JetBrains за бесплатные лицензии для открытого исходного кода:

<p>
<img src="https://jpom.top/images/friends/ad/jetbrains.png" alt="JetBrains" style="float:left;">
</p>

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/dromara-Jpom.git
git@api.gitlife.ru:oschina-mirror/dromara-Jpom.git
oschina-mirror
dromara-Jpom
dromara-Jpom
master