11plugins {
22 id ' pl.allegro.tech.build.axion-release' version ' 1.17.2'
33 id ' java'
4- id ' maven- publish'
4+ id ' io.github.gradle-nexus. publish-plugin ' version ' 2.0.0 '
55}
66
7- apply plugin : ' java'
8-
9- sourceCompatibility = 1.11
7+ java {
8+ sourceCompatibility = JavaVersion . VERSION_17
9+ targetCompatibility = JavaVersion . VERSION_17
10+ withSourcesJar()
11+ withJavadocJar()
12+ }
1013ext. rundeckPluginVersion = ' 1.2'
1114ext. pluginClassNames= ' edu.ohio.ais.rundeck.HttpWorkflowStepPlugin,edu.ohio.ais.rundeck.HttpWorkflowNodeStepPlugin'
1215ext. pluginName = ' Rundeck Http Step'
1316ext. pluginDescription = ' A workflow plugin that makes HTTP requests'
14- group = ' com.github.rundeck-plugins'
17+ group = ' org.rundeck.plugins'
18+
19+ ext. publishName = " Rundeck Http Step ${ project.version} "
20+ ext. githubSlug = ' rundeck-plugins/http-step'
21+ ext. developers = [
22+ [id : ' gschueler' , name : ' Greg Schueler' , email : ' greg@rundeck.com' ]
23+ ]
1524
1625scmVersion {
17- ignoreUncommittedChanges = true
26+ ignoreUncommittedChanges = false
1827 tag {
19- prefix = ' '
28+ prefix = ' ' // NO "v" prefix - see PLUGIN_TAGGING_ARCHITECTURE.md
2029 versionSeparator = ' '
2130 }
2231}
23- project. version = scmVersion. version
2432
33+ version = scmVersion. version // Dynamic version from git tag
2534
2635repositories {
2736 mavenLocal()
37+ maven {
38+ name = ' Central Portal Snapshots'
39+ url = ' https://central.sonatype.com/repository/maven-snapshots/'
40+ content {
41+ includeGroup(' org.rundeck' )
42+ }
43+ }
44+ maven {
45+ name = ' Central Portal Snapshots'
46+ url = ' https://central.sonatype.com/repository/maven-snapshots/'
47+
48+ // Only search this repository for org.rundeck snapshots
49+ content {
50+ includeGroup(' org.rundeck' )
51+ }
52+ }
2853 mavenCentral()
2954}
3055
@@ -39,16 +64,18 @@ configurations{
3964}
4065
4166dependencies {
42- implementation ' org.rundeck:rundeck-core:5.14.0-rc1-20250722'
67+ compileOnly ' org.rundeck:rundeck-core:6.0.0-alpha1-20260407'
68+ testImplementation ' org.rundeck:rundeck-core:6.0.0-alpha1-20260407'
4369
4470 // Add secure commons-lang3 to provide alternative to vulnerable commons-lang 2.6
45- implementation ' org.apache.commons:commons-lang3:3.18.0'
71+ // Version 3.20.0 fixes CVE-2025-48924 (StackOverflowError in ClassUtils)
72+ pluginLibs ' org.apache.commons:commons-lang3:3.20.0'
4673
4774 pluginLibs group : ' org.apache.httpcomponents' , name : ' httpclient' , version : ' 4.5.14'
4875 pluginLibs group : ' com.google.code.gson' , name : ' gson' , version :' 2.10.1'
4976
5077 testImplementation group : ' com.github.tomakehurst' , name : ' wiremock-standalone' , version :' 2.23.2'
51- testImplementation group : ' junit' , name : ' junit' , version :' 4.13.1 '
78+ testImplementation group : ' junit' , name : ' junit' , version :' 4.13.2 '
5279
5380 testImplementation (
5481 ' org.mockito:mockito-all:1.9.5' ,
@@ -60,22 +87,32 @@ dependencies {
6087configurations. all {
6188 resolutionStrategy {
6289 // Replace vulnerable commons-lang with secure commons-lang3
90+ // Version 3.18.0 fixes CVE-2025-48924 (StackOverflowError in ClassUtils)
6391 dependencySubstitution {
6492 substitute module(' commons-lang:commons-lang' ) using module(' org.apache.commons:commons-lang3:3.18.0' )
6593 }
6694 }
6795}
6896
6997
70- // task to copy plugin libs to output/lib dir
71- task copyToLib (type : Copy ) {
72- into " $buildDir /output/lib"
73- from configurations. pluginLibs
98+ test {
99+ useJUnit()
100+
101+ // Java 17+ module access for reflection/mocking
102+ jvmArgs = [
103+ ' --add-opens=java.base/java.lang=ALL-UNNAMED' ,
104+ ' --add-opens=java.base/java.util=ALL-UNNAMED' ,
105+ ' --add-opens=java.base/java.lang.reflect=ALL-UNNAMED' ,
106+ ' --add-opens=java.base/java.net=ALL-UNNAMED'
107+ ]
74108}
75109
76-
77110jar {
78- from " $buildDir /output"
111+ // Include plugin dependencies in lib/ directory
112+ into(' lib' ) {
113+ from configurations. pluginLibs
114+ }
115+
79116 manifest {
80117 def libList = configurations. pluginLibs. collect{' lib/' + it. name}. join(' ' )
81118
@@ -86,22 +123,22 @@ jar {
86123 attributes ' Rundeck-Plugin-Rundeck-Compatibility-Version' : ' 3.x'
87124 attributes ' Rundeck-Plugin-Tags' : ' java,WorkflowStep'
88125 attributes ' Rundeck-Plugin-License' : ' Apache 2.0'
89- attributes ' Rundeck-Plugin-Source-Link' : ' https://github.com/rundeck-plugins/http-notification '
126+ attributes ' Rundeck-Plugin-Source-Link' : ' https://github.com/rundeck-plugins/http-step '
90127 attributes ' Rundeck-Plugin-Target-Host-Compatibility' : ' all'
91128 attributes ' Rundeck-Plugin-Version' : rundeckPluginVersion
92129 attributes ' Rundeck-Plugin-Archive' : ' true'
93130 attributes ' Rundeck-Plugin-Libs' : " ${ libList} "
94-
95131 }
96- dependsOn(copyToLib)
97-
98132}
99133
100- publishing {
101- publications {
102- maven(MavenPublication ) {
103- artifactId = ' http-step'
104- from components. java
134+ nexusPublishing {
135+ packageGroup = ' org.rundeck.plugins'
136+ repositories {
137+ sonatype {
138+ nexusUrl. set(uri(" https://ossrh-staging-api.central.sonatype.com/service/local/" ))
139+ snapshotRepositoryUrl. set(uri(" https://central.sonatype.com/repository/maven-snapshots/" ))
105140 }
106141 }
107- }
142+ }
143+
144+ apply from : " ${ rootDir} /gradle/publishing.gradle"
0 commit comments