構建一個Jenkins插件,創建一個SimpleBuildStep
。Jenkins Plugin Development Gradle Build
它與maven hpi:run
但我需要切換到gradle
我的問題是,當我運行gradle server
我可以看到安裝我的自定義插件,但它是不是在構建步驟。
我認爲這是我的版本,我改變了幾次。我想知道我的配置是否錯誤。
我有一個work
目錄,顯示了和我的插件顯示在work/plugins/
與.hpi
和.hpl
文件,但它仍然無法正常工作。它只能在行家還當我做詹金斯的泊塢窗實例(總是在詹金斯第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'
}
編輯不顯示:讓它工作。我現在可以在我的實例中實際使用我的插件。
變化:
檢查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
塊做某種原因
等待組wiki page在我的'jenkinsPlugin'塊?我認爲這個塊是爲了我自己關於像我的團體等插件的信息? –
也在您發給我的wiki頁面中,它甚至會像我一樣說完成我所有的插件依賴項。你從哪裏獲得了添加插件的慣例? –
我更新了我的答案。依賴關係在這裏討論https://docs.gradle.org/current/userguide/artifact_dependencies_tutorial.html如果你不打算髮布插件 – KeepCalmAndCarryOn