Создание плагина Jenkins, который создает SimpleBuildStep
.Jenkins Plugin Development Gradle Build
Он работает с maven hpi:run
, но мне нужно, чтобы включить его в gradle
Моя проблема заключается в том, что, когда я бегу gradle server
я могу видеть, установлен мой пользовательский плагин, но не на стадии сборки.
Я думал, что это мое исполнение, и я несколько раз менял его. Мне интересно, неправильная конфигурация.
У меня есть work
каталог, который показывает и мой плагин отображается в work/plugins/
с .hpi
и .hpl
файл, но он по-прежнему не работает. Он работает только в мавена он также не показывает, когда я делаю экземпляр Docker Дженкинса (который всегда в Дженкинс версии 2)
Я все еще предполагая, что это мой build.gradle
plugins {
id "org.jenkins-ci.jpi" version "0.16.0"
}
jenkinsPlugin {
coreVersion = "2.0" // Version of Jenkins core this plugin depends on.
displayName = "Test Jenkins Plugin" // Human-readable name of plugin.
url = "http://wiki.jenkins-ci.org/display/JENKINS/SomePluginPage" // URL for plugin on Jenkins wiki or elsewhere.
shortName = "jetson" // Plugin ID, defaults to the project name without trailing '-plugin'
}
group 'test'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.5
repositories {
mavenCentral()
}
dependencies {
compile group: 'org.jenkins-ci.main', name: 'ui-samples-plugin', version: '1.424.2'
testCompile group: 'junit', name: 'junit', version: '4.11'
}
EDIT: Попросите его работать. Теперь я могу использовать мой плагин в своем экземпляре.
Изменения:
После проверки файла hpl
и читать. Я понял, что мой плагин Jenkins даже не регистрировал мои классы. Я понял, что мой build.gradle
был в папке в корневом проекте. Поэтому, очевидно, я переместил build.gradle
в корень.
Оттуда я заметил, что на самом деле они построили эти классы. По-прежнему не удалось заставить мой плагин фактически отображаться как шаг сборки, даже если он появился под установленной (той же старой проблемой). Я взял еще build.gradle
из другого плагина и отредактировал для моего собственного использования. Это работает, однако я понятия не имею, почему.
* Мне также пришлось добавить отсутствующую зависимость, с которой я столкнулся, теперь, когда она фактически создала мой проект.
новый build.gradle
:
buildscript {
repositories {
// The plugin is currently only available via the Jenkins
// Maven repository, but has dependencies in Maven Central.
mavenCentral()
maven {
url 'http://repo.jenkins-ci.org/releases/'
}
}
dependencies {
classpath 'org.jenkins-ci.tools:gradle-jpi-plugin:0.14.1'
}
}
apply plugin: 'java'
apply plugin: 'org.jenkins-ci.jpi'
repositories {
mavenCentral()
maven {
url "http://repo.jenkins-ci.org/releases/"
}
}
group = 'workday'
version = '0.1.0-SNAPSHOT'
description = 'Test AS A Service Plugin'
jenkinsPlugin {
// version of Jenkins core this plugin depends on, must be 1.420 or later
coreVersion = '1.654'
// ID of the plugin, defaults to the project name without trailing '-plugin'
shortName = 'jetson'
// human-readable name of plugin
displayName = 'Jetson Test Plugin'
// use the plugin class loader before the core class loader, defaults to false
pluginFirstClassLoader = true
// optional list of package prefixes that your plugin doesn't want to see from core
maskClasses = 'groovy.grape org.apache.commons.codec'
// optional version number from which this plugin release is configuration-compatible
compatibleSinceVersion = '1.1.0'
// enable injection of additional tests for checking the syntax of Jelly and other things
disabledTestInjection = false
// the output directory for the localizer task relative to the project root, defaults to the value shown
localizerOutputDir = "${project.buildDir}/generated-src/localizer"
// plugin file extension, either 'jpi' or 'hpi', defaults to 'hpi'
fileExtension = 'hpi'
}
dependencies {
compile group: 'org.jenkins-ci.main', name: 'ui-samples-plugin', version: '1.424.2'
compile 'org.glassfish.jersey.containers:jersey-container-servlet:2.14'
testCompile group: 'junit', name: 'junit', version: '4.11'
}
Я подозреваю, что это на самом деле имеет дело с новыми buildscripts
блоками по какой-то причине
ожидания группы в моем 'jenkinsPlugin' блоке? Я думал, что блок был для моей собственной информации о плагине, как мои группы и т. Д.? –
также на странице вики-страницы, которую вы мне прислали, даже говорит, чтобы сделать все мои зависимостей плагина, как я. где вы получили соглашение о добавлении плагинов? –
Я обновил свой ответ. Зависимости обсуждаются здесь https://docs.gradle.org/current/userguide/artifact_dependencies_tutorial.html. Возможно, вы не можете изменить группу, если вы не собираетесь выпускать плагин. – KeepCalmAndCarryOn