Как создать плагин для WordPress 🤖 Инструкция 2023
- 10 декабря, 2020
Содержание
- Введение
- Четыре простых шагов для создания WordPress плагина
- Шаг 1. Подберите имя для вашего плагина
- Шаг 2. Создайте папку с плагином и PHP файл
- Шаг 3. Создайте заголовок файла
- Шаг 4: Добавьте функционал созданному плагину
- Практические советы по созданию своих плагинов для WordPress
- Основные советы
- Структура и архитектура плагина
- Готовый шаблон WordPress плагина
🤖 Шаблон WordPress плагина (генератор)
Стандартизированная, организованная, объектно-ориентированная основа для создания высококачественных WordPress плагинов.
Сгенерировать свой плагин
Раз уж вы попали на эту страницу значит у вас есть сайт на WordPress и вам наверняка знакомы возможности различных плагинов. Однако использование плагинов на сайте и создание собственного плагина – это две разные вещи. Давайте разбираться как создать плагин для WordPress!
Введение
К счастью, создавать собственные плагины для WordPress проще, чем вы могли бы подумать. Первый ключевой шаг – получить четкое представление о том, как работают плагины и как они создаются. После того, как вы определились с основными концепциями, создание и установка собственных плагинов станет довольно простой задачей.
В этом посте мы объясним основы разработки плагинов для WordPress, включая необходимые элементы и то, как они работают вместе.
Давайте начнем!
Четыре простых шагов для создания WordPress плагина
Важно отметить, что перед активацией нового плагина на своём сайте или редактированием каких-либо файлов вам нужно сначала настроить постановочную среду или, на худой конец, создать резервную копию. Это позволяет вам безопасно экспериментировать, не рискуя сломать ваш действующий сайт.
Шаг 1. Подберите имя для вашего плагина
Первый шаг в разработке плагина для WordPress – придумать официальное название для вашего плагина.
Рекомендуется проверить официальный репозиторий WordPress, чтобы убедиться, что нет других плагинов с тем именем, которое вы собираетесь использовать. Имейте в виду, что именем плагина будет то, что вы используете для папки плагина и файла PHP.
Называя плагин, убедитесь, что он уникален, конкретен и легко сокращается. #WordPress
Вы также можете использовать сокращенную версию названия в качестве префикса, чтобы избежать конфликтов имен (которые мы обсудим позже).
Шаг 2. Создайте папку с плагином и PHP файл
Прежде всего, вашему плагину нужно где-то жить. Поэтому после того, как вы выберете имя для своего плагина, следующим шагом будет создание для него папки.
Для начала перейдите в папку wp-content/plugins в каталоге где установлен WordPress. Создайте новую папку и назовите ее, используя имя плагина, используя дефисы для разделения слов. Например, my-super-plugin.
Структура папок – Как создать плагин для WordPressПосле того, как вы создали папку с плагинами, следующим шагом будет создание внутри нее файла PHP.
В зависимости от того, насколько сложным будет ваш плагин, он может в конечном итоге содержать один файл PHP или несколько файлов.
Шаг 3. Создайте заголовок файла
После того как вы создадите основной файл плагина, пора добавить заголовок файла. По сути, это комментарий блока PHP, который включает метаданные о вашем плагине.
Внутри файла добавьте следующий код:
/** * Plugin Name: Мой супер плагин * Plugin URI: https://wordpresslab.ru/plugins/kak-sozdat-plagin-dlya-wordpress/ * Description: Этот плагин делает мир лучше! * Version: 1.0.0 * Author: WordPress лаборатория * Author URI: https://wordpresslab.ru/ * License: GPL2 */
Не забудьте заменить приведенную выше информацию на сведения, относящиеся именно к вашему плагину. Кроме того, если в вашем каталоге плагинов есть несколько файлов PHP, убедитесь, что вы добили этот заголовок только к одному из них.
Как минимум, заголовок должен содержать
Когда вы закончите, сохраните изменения и ваш плагин будет добавлен на сайт. Чтобы убедиться, перейдите на панель администратора WordPress и перейдите в раздел «Плагины»:
Как создать плагин для WordPress – Активация плагинаВы должны увидеть свой новый плагин в списке на этом экране. Конечно, впереди еще много работы.
Шаг 4: Добавьте функционал созданному плагину
Большинство плагинов работают с помощью хуков (hook), которые позволяют одному фрагменту кода взаимодействовать с другим. В WordPress есть два типа хуков: действия (actions) и фильтры (filters)
Actions (действия)
Actions в WordPress относится к определенному действию, которое должно произойти в определенное время. С помощью действий вы можете добавить или изменить функциональность вашего плагина. Функции, которые связаны с действием, будут выполнены после его запуска.
Пример действия в WordPress – save_post. Действия определяются функцией do_action. Для них требуется параметр $tag (имя действия) и в некоторых случаях $args (дополнительные аргументы, расширяющие то, что делает действие)
Ядро WordPress уже содержит десятками предопределенных действий. Однако вы также можете создать свои собственные. В любом случае, при создании плагина для WordPress вы будете использовать do_action для установки значений к подключенной функции. Затем функция add_action будет использоваться для подключения этой функции к определенному действию.
Подробнее про экшен-хуки читайте тут.
Filters (фильтры)
Фильтры WordPress – это хуки, которые принимают одну переменную или серию переменных, а затем отправляют их обратно после того, как они были изменены. Вкратце, фильтры позволяют вам изменять контент, отображаемый для пользователей.
Фильтры в WordPress создаются с помощью функции apply_filters и определяются внутри функции. Для них требуются аргументы $tag (имя фильтра) и $value (отфильтрованное значение или переменная) с возможностью использования $var для дополнительных значений функции.
Вы можете создать свой собственный фильтр с помощью хука apply_filters. Затем для его выполнения вы можете использовать функцию add_filter. Это позволит вам подключить к фильтру определенную функцию, чтобы вы могли манипулировать переменной и возвращать ее.
Подробнее про фильтр-хуки читайте тут.
Практические советы по созданию своих плагинов для WordPress
Основные советы
- Избегайте конфликтов имен.
- Все переменные, функции и классы должны иметь префикс с уникальным идентификатором.
- PHP предоставляет ряд функций для проверки существования переменных, функций, классов и констант. Используйте эту возможность!
- Самый простой способ решить проблему коллизии имен – использовать классы для кода вашего плагина. Метод объектно-ориентированного программирования.
- Корневой уровень каталога вашего плагина должен содержать ваш файл название-плагина.php и при желании, файл uninstall.php. Все остальные файлы по возможности должны находится во вложенных папках.
Структура и архитектура плагина
Четкая структура плагина облегчит жизнь вам, и всем тем кто в будущем будет работать с вашим кодом.
Архитектура или организация кода должна зависеть от размера вашего плагина.
Для небольших плагинов которые имеют ограниченное взаимодействие с ядром WordPress, темами или другими подключаемыми модулями, создание сложных классов не принесет особой пользы.
Для больших плагинов с большим количеством кода создание классов является стандартом. Это поможет в организации кода и долгосрочном обслуживании плагина.
Готовый шаблон WordPress плагина
Вместо того, чтобы начинать с нуля для каждого нового плагина, вы можете начать с шаблона.
Одно из преимуществ использования шаблона – согласованность ваших собственных плагинов. Плагины, созданные по шаблонам, также облегчают жизнь другим людям!
🤖 Шаблон WordPress плагина (генератор)
Стандартизированная, организованная, объектно-ориентированная основа для создания высококачественных WordPress плагинов.
Сгенерировать свой плагин
Надеемся эта статья помогла вам чуть больше погрузиться в мир WordPress и вы разобрались как создать плагин для WordPress 😊
Если у вас есть вопросы – спрашивайте в комментариях.
Спасибо.
Похожие Темы
- WordPress для разработчиков
Как создать плагин minecraft | Black-Minecraft.
com — лучшее для сервера Майнкрафт!И так чтобы создать плагин сначала нам нужно скачать IntelliJ IDEA Community Edition
для єтого нам нужно перейти на сайт Link hidden, please Sign in
Sing up
═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═
➥после чего нажимаем на кнопку «скачать«
➥после нажимаем скачать «Community Edition«
═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═
скачали, запустили
≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔
➥после чего нажимаем на вкладку «plugins»
≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷≷
⇢далее пишем «Minecraft Developer»
≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔
⇗после чего устанавливаем и нажимаем «new project» после у нас появится вкладка «minecraft»
≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔
⇗Выбмраем ядро сервера для меня «spigot» и нажимаем «next»
≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔
Groupld-Имя создателя(точно не помню, но вроде так)
Artifactld-название плагина
Version-Версия плагина
≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔
(у меня получилось так):
≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔
нажимаем «next»
≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔
Plugin Name — название плагина
Main Class Name — путь к классу файлу плагина (Лучше оставить как есть)
Minecraft Version — версия вашего сервера
Description — описание плагина (Можно оставить пустым)
Authors — разработчики плагина (Можно оставить пустым)
WebSite — сайт плагина (Можно оставить пустым)
Log Prefix — префикс логирования плагина в консоль (Можно оставить пустым, по умолчанию используется название плагина в качестве префикса)
Load Before — загружать плагин после определённых плагинов (Лучше оставить пустым)
Depend — зависимости плагина (Какие плагины обязательно требуются для работы нашего плагина, например Vault. Лучше оставить пустым, если вы не используете API других плагинов)
Soft Depend — не обязательные зависимости плагина (Какие плагины необязательно требуются для работы нашего плагина)
≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔
Project Name-Имя проекта
Project location-папка проекта
≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔
После мы попадаем в написание плагина
≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔
начинаем писать плагин
и так
public void onEnable() {
// Plugin startup logic
//тут будет происходить всё когда плагин включился
}
@Override
public void onDisable() {
// Plugin shutdown logic
//Тут когда плагин выключился
}
≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔
Открываем такой путь после чего
тыкаем 2 раза на «Plugin. yml«
Тут мы видим
name: SuperPlugin229
version: ‘${project.version}’
main: minec.feitap.superplugin229.SuperPlugin229
api-version: 1.16
(у вас может быть другой текст)
добавляем
commands:
название_команды: {}
Создаваем новый «package»
Называем его как-то
в package котором мы создали создадим «java class»
называем его как-то
нажимаем enter
добавляем implements и CommandExecutor
как видим его подчеркнуло красным
нажимаем alt enter
и выбираем «implement methods»
нажимаем ок
как видим у нас появилось publicboolean и тд
перед return false пишем вот такой код:
(return false мы изменили на return true)
И так мы написали всё, но не сделали самое главное
(не сделали так, чтобы сообщение «Привет» писалось и выполнялся данный клас)
≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔≔
возвращаемся сюда
теперь тут мы будем писать следующие
Как экспортировать проект?
Во вкладке «Maven»
открываем Lifecycle после нажимаем 2-а раза package
находим папку проекта
и у нас появилась папка «target»
открываем его
и вот наш плагин!
теперь при команде «/hello» игроку будет писать «Привет!»
очень старался так что, пожалуйста, оцените)
Создать плагин — унифицированный
Создание плагина с унифицированным
В этом руководстве показано, как создать плагин для ретекста, который проверяет количество пробелов между предложениями. Представленные здесь концепции применимы и к другим синтаксисам слова unified.
Застрял? Есть идея для другого руководства? См.
support.md
.
Содержание
- Основные сведения о плагине
- Чемодан
- Настройка
- Плагин
- Дополнительные упражнения
Основы подключаемых модулей
Унифицированный подключаемый модуль изменяет способ работы наложенного процессора несколькими способами. В этом руководстве мы рассмотрим, как проверять синтаксические деревья.
Плагины могут состоять из двух частей: присоединителя , который является функцией, которая вызывается, когда кто-то вызывает .use
, и преобразователя , который является дополнительной функцией, вызываемой каждый раз, когда файл обрабатывается с помощью синтаксического дерева. и виртуальный файл.
В этом случае мы хотим проверить синтаксическое дерево каждого обрабатываемого файла, поэтому указываем преобразователь.
Теперь вы знаете основы плагинов в unified. К нашему делу!
Чемодан
Прежде чем мы начнем, давайте наметим, что мы хотим сделать. Скажем, у нас есть следующий текстовый файл:
Одно предложение. Два предложения. Одно предложение. Два предложения.
Мы хотим получить предупреждение для второго абзаца о том, что следует использовать один пробел вместо двух.
На следующем шаге мы напишем код для использования нашего плагина.
Настройка
Давайте создадим проект. Создайте папку, пример
, войдите в нее и инициализируйте новый проект:
mkdir компакт-диск пример инициализация npm -y
Затем убедитесь, что проект является модулем, чтобы импорт
и экспорт
работали, изменив package.json
:
--- a/package.json +++ б/package.json @@ -2,6 +2,7 @@ "имя": "пример", "версия": "1.0.0", "описание": "", + "тип": "модуль", «основной»: «index. js», "скрипты": { "test": "echo \"Ошибка: тест не указан\" && выход 1"
Убедитесь, что example.md
существует с:
Одно предложение. Два предложения. Одно предложение. Два предложения.
Теперь давайте создадим файл example.js
, который будет обрабатывать наш текстовый файл и сообщать обо всех обнаруженных проблемах.
импортировать фс из "фс" импортировать {retext} из 'retext' импортировать {reporter} из 'vfile-reporter' импортировать retextSentenceSpacing из './index.js' константный буфер = fs.readFileSync('example.md') ретекст() .use(retextSentenceSpacing) .процесс(буфер) .тог((файл) => { console.error (репортер (файл)) })
Не забудьте
npm установить
зависимостей (retext
,vfile-reporter
)!
Если вы прочитаете руководство по использованию unified, то увидите знакомые утверждения. Сначала мы загружаем зависимости, затем читаем файл. Мы обрабатываем этот файл с помощью подключаемого модуля, который мы создадим через секунду, и, наконец, мы сообщаем либо о фатальной ошибке, либо о любых найденных сообщениях линтинга.
Обратите внимание, что мы напрямую зависим от ретекста. Это пакет, который предоставляет унифицированный процессор и поставляется с присоединенными парсером и компилятором.
При запуске нашего примера (он пока не работает) мы хотим увидеть сообщение для второго абзаца о том, что следует использовать один пробел вместо двух.
Теперь у нас все настроено, кроме самого плагина. Мы сделаем это в следующем разделе.
Плагин
Как мы читаем в Основах плагинов, нам понадобится плагин, а для нашего случая еще и трансформер. Давайте создадим их в нашем файле плагина index.js
:
export default function retextSentenceSpacing() { return (дерево, файл) => { } }
Прежде всего, нам нужно проверить дерево
на наличие шаблона. Мы можем использовать утилиту, которая поможет нам рекурсивно пройтись по нашему дереву, а именно unist-util-visit
. Добавим это.
--- a/index.js +++ б/index.js @@ -1,4 +1,9 @@ +импортировать {посещение} из 'unist-util-visit' + функция экспорта по умолчанию retextSentenceSpacing() { return (дерево, файл) => { + визит(дерево, 'УзелАбзаца', (узел) => { + console.log(узел) + }) } }
Не забудьте
npm установить
утилиту!
Если мы теперь запустим наш пример с Node.js следующим образом, мы увидим, что посетитель вызывается с обоими абзацами в нашем примере:
node example.js
{ тип: 'Узел Абзаца', дети: [ { тип: 'SentenceNode', дочерние элементы: [массив], позиция: [объект]}, { тип: 'WhiteSpaceNode', значение: ' ', позиция: [Позиция] }, { тип: 'SentenceNode', дочерние элементы: [массив], позиция: [объект]} ], позиция: { начало: {строка: 1, столбец: 1, смещение: 0}, конец: { строка: 1, столбец: 29, смещение: 28 } } } { тип: 'Узел Абзаца', дети: [ { тип: 'SentenceNode', дочерние элементы: [массив], позиция: [объект]}, { тип: 'WhiteSpaceNode', значение: ' ', позиция: [Позиция] }, { тип: 'SentenceNode', дочерние элементы: [массив], позиция: [объект]} ], позиция: { начало: {строка: 3, столбец: 1, смещение: 30}, конец: { строка: 3, столбец: 30, смещение: 59 } } } проблем не обнаружено
Эти выходные данные уже показывают, что абзацы содержат два типа узлов: SentenceNode
и WhiteSpaceNode
. Последнее — это то, что мы хотим проверить, но первое важно, потому что мы только предупреждаем о пробелах между предложениями в этом плагине (хотя это может быть другой плагин).
Давайте теперь пройдемся по дочерним элементам каждого абзаца. Только проверка пробелов между предложениями. Мы используем небольшую утилиту для проверки типов узлов: unist-util-is
.
--- a/index.js +++ б/index.js @@ -1,9 +1,20 @@ импортировать {визит} из 'unist-util-visit' +импорт {is} из 'unist-util-is' функция экспорта по умолчанию retextSentenceSpacing() { return (дерево, файл) => { визит(дерево, 'Узел-Абзаца', (узел) => { - console.log(узел) + константные дети = узел.дети + + children.forEach((дочерний элемент, индекс) => { + если ( + is(children[index - 1], 'SentenceNode') && + is(child, 'WhiteSpaceNode') && + есть (дети [индекс + 1], 'SentenceNode') + ) { + console.log(дочерний) + } + }) }) } }
Не забудьте
npm установить
утилиту!
Если мы теперь запустим наш пример с Node следующим образом, мы увидим, что регистрируются только пробелы между предложениями.
узел example.js
{ тип: 'WhiteSpaceNode', ценить: ' ', позиция: позиция { начало: {строка: 1, столбец: 14, смещение: 13}, конец: { строка: 1, столбец: 15, смещение: 14 } } } { тип: 'WhiteSpaceNode', ценить: ' ', позиция: позиция { начало: {строка: 3, столбец: 14, смещение: 43}, конец: { строка: 3, столбец: 16, смещение: 45 } } } проблем не обнаружено
Наконец, давайте добавим предупреждение для второго пробела, так как в нем больше символов, чем нужно. Мы можем использовать file.message()
, чтобы связать сообщение с файлом.
--- a/index.js +++ б/index.js @@ -12,7 +12,12 @@ функция экспорта по умолчанию retextSentenceSpacing() { is(child, 'WhiteSpaceNode') && есть (дети [индекс + 1], 'SentenceNode') ) { - console.log(дочерний) + если (ребенок.значение.длина !== 1) { + файл.сообщение( + 'Ожидается 1 пробел между предложениями, а не ' + child.value.length, + ребенок + ) + } } }) })
Если мы теперь запустим наш пример в последний раз, мы увидим сообщение о нашей проблеме!
$ узел example. js 3:14-3:16 предупреждение Ожидается 1 пробел между предложениями, а не 2 ⚠ 1 предупреждение
Дополнительные упражнения
Один пробел между предложениями подходит не всем. Этот плагин может получить предпочтительное количество пробелов вместо жестко заданного 1
.
Если вы хотите предупреждать о табуляциях или новых строках между предложениями, возможно, создайте плагин и для этого?
Если вы еще этого не сделали, ознакомьтесь с другими статьями в разделе обучения!
Создать подключаемый модуль
Откройте командную строку, перейдите в каталог, в котором вы хотите сохранить новый подключаемый модуль Jenkins, и выполните следующую команду:
mvn -U archetype:generate -Dfilter="io.jenkins.archetypes: "
Эта команда позволит вам сгенерировать один из нескольких архетипов проекта, связанных с Дженкинсом.
В этом руководстве мы собираемся использовать архетип hello-world
версии 1.5, поэтому выберите его:
$ mvn -U архетип: сгенерировать -Dfilter="io. jenkins.archetypes:" … Выберите архетип: 1: удаленный -> io.jenkins.archetypes:empty-plugin (Скелет плагина Jenkins с POM и пустым исходным деревом.) 2: remote -> io.jenkins.archetypes:global-configuration-plugin (Скелет плагина Jenkins с POM и примером глобальной конфигурации.) 3: remote -> io.jenkins.archetypes:global-shared-library (использует фиктивную библиотеку Jenkins Pipeline Unit для проверки использования глобальной общей библиотеки) 4: remote -> io.jenkins.archetypes:hello-world-plugin (Скелет плагина Jenkins с POM и примером шага сборки.) 5: remote -> io.jenkins.archetypes:scripted-pipeline (использует фиктивную библиотеку Jenkins Pipeline Unit для проверки логики внутри скрипта Pipeline.) Выберите число или примените фильтр (формат: [groupId:]artifactId, содержит с учетом регистра): : 4 (1) Выберите версию io.jenkins.archetypes:hello-world-plugin: 1:1.1 2: 1,2 3: 1,3 4:1,4 5:1,5 6:1,6 7:1,7 8:1,8 9:1,9 10:1.10 11: 1,11 12:1,12 13: 1,13 14:1,14 15:1,15 16:1,16 17: 1,17 18:1,18 Выберите номер: 18: 18 (2) … [INFO] Использование свойства: groupId = unused (3) [INFO] Использование свойства: package = io. jenkins.plugins.sample [INFO] Использование свойства: hostOnJenkinsGitHub = true Определить значение для свойства 'artifactId': демо (4) Определить значение свойства «версия» 1.0-SNAPSHOT: : (5) Подтвердите настройку свойств: идентификатор группы: не используется пакет: io.jenkins.plugins.sample hostOnJenkinsGitHub: правда идентификатор артефакта: демо версия: 1.0-СНИМОК Y: : y (6)
1 | Введите номер для архетипа hello-world-plugin , в данном случае 4 . |
2 | Это руководство основано на версии 1.18 архетипа hello-world-plugin , поэтому введите 18 , чтобы выбрать его. |
3 | groupId уникально идентифицирует ваш проект среди всех проектов. Идентификатор группы должен соответствовать правилам имени пакета Java.
Это означает, что он начинается с перевернутого доменного имени.
Например: io.jenkins.plugins |
4 | ArtifactId является обязательным и однозначно идентифицирует ваш подключаемый модуль в Jenkins.
Это уникальное базовое имя основного артефакта, создаваемого этим проектом maven.
В этом учебном пособии по подключаемому модулю используется название demo (пользовательский ввод выделен жирным шрифтом).
Если вы хотите опубликовать свой плагин, убедитесь, что это имя еще не занято и что выбранное вами имя рассчитано на будущее:
Артефакт ID нельзя изменить после того, как вы опубликовали свой первый выпуск.
Сделай , а не , используйте слова jenkins или plugin в этом идентификаторе — только слова, описывающие, какой это плагин Jenkins. |
5 | Здесь нет необходимости выбирать другой номер версии. |