Skip to content

Commit 27e06fe

Browse files
artembilanspring-builds
authored andcommitted
Revert back to registerFeature('optional')
With a `components.java.addVariantsFromConfiguration(configurations.optional)` and `io.spring.dependency-management` combination the version is not published for `optional` dependencies. Does not look like there is an easy way to extract that version somehow. So, revert back to the `registerFeature('optional')` for time being. Even if it is reported as deprecated in Gradle (cherry picked from commit 2789038)
1 parent 668b369 commit 27e06fe

File tree

1 file changed

+36
-56
lines changed

1 file changed

+36
-56
lines changed

build.gradle

Lines changed: 36 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -170,27 +170,12 @@ configure(javaProjects) { subproject ->
170170

171171
apply from: "${rootProject.projectDir}/gradle/publish-maven.gradle"
172172

173-
def scopeAttribute = Attribute.of('dependency.scope', String)
174-
175-
configurations {
176-
optional {
177-
attributes {
178-
attribute(scopeAttribute, 'optional')
179-
}
180-
}
181-
182-
compileClasspath.extendsFrom(optional)
183-
testCompileClasspath.extendsFrom(optional)
184-
testRuntimeClasspath.extendsFrom(optional)
185-
}
186-
187-
components.java.addVariantsFromConfiguration(configurations.optional) {
188-
mapToOptional()
189-
}
190-
191173
java {
192174
withJavadocJar()
193175
withSourcesJar()
176+
registerFeature('optional') {
177+
usingSourceSet(sourceSets.main)
178+
}
194179
}
195180

196181
compileJava {
@@ -211,10 +196,6 @@ configure(javaProjects) { subproject ->
211196

212197
// dependencies that are common across all java projects
213198
dependencies {
214-
attributesSchema {
215-
attribute(scopeAttribute)
216-
}
217-
218199
def spotbugsAnnotations = "com.github.spotbugs:spotbugs-annotations:${spotbugs.toolVersion.get()}"
219200
compileOnly spotbugsAnnotations
220201
testCompileOnly spotbugsAnnotations
@@ -262,7 +243,6 @@ configure(javaProjects) { subproject ->
262243
tasks.register('updateCopyrights') {
263244
onlyIf { !isCI }
264245
inputs.files(modifiedFiles.filter { f -> f.path.contains(subproject.name) })
265-
outputs.dir('build/classes')
266246

267247
doLast {
268248
def now = Calendar.instance.get(Calendar.YEAR) as String
@@ -375,26 +355,26 @@ project('spring-amqp') {
375355
api("org.springframework.retry:spring-retry:$springRetryVersion") {
376356
exclude group: 'org.springframework'
377357
}
378-
optional 'org.springframework:spring-messaging'
379-
optional 'org.springframework:spring-oxm'
380-
optional 'org.springframework:spring-context'
381-
optional 'com.fasterxml.jackson.core:jackson-core'
382-
optional 'com.fasterxml.jackson.core:jackson-databind'
383-
optional 'com.fasterxml.jackson.core:jackson-annotations'
384-
optional 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml'
385-
optional 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8'
386-
optional 'com.fasterxml.jackson.module:jackson-module-parameter-names'
387-
optional 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
388-
optional 'com.fasterxml.jackson.datatype:jackson-datatype-joda'
389-
optional('com.fasterxml.jackson.module:jackson-module-kotlin') {
358+
optionalApi 'org.springframework:spring-messaging'
359+
optionalApi 'org.springframework:spring-oxm'
360+
optionalApi 'org.springframework:spring-context'
361+
optionalApi 'com.fasterxml.jackson.core:jackson-core'
362+
optionalApi 'com.fasterxml.jackson.core:jackson-databind'
363+
optionalApi 'com.fasterxml.jackson.core:jackson-annotations'
364+
optionalApi 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml'
365+
optionalApi 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8'
366+
optionalApi 'com.fasterxml.jackson.module:jackson-module-parameter-names'
367+
optionalApi 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
368+
optionalApi 'com.fasterxml.jackson.datatype:jackson-datatype-joda'
369+
optionalApi('com.fasterxml.jackson.module:jackson-module-kotlin') {
390370
exclude group: 'org.jetbrains.kotlin'
391371
}
392372
// Spring Data projection message binding support
393-
optional('org.springframework.data:spring-data-commons') {
373+
optionalApi('org.springframework.data:spring-data-commons') {
394374
exclude group: 'org.springframework'
395375
exclude group: 'io.micrometer'
396376
}
397-
optional "com.jayway.jsonpath:json-path:$jaywayJsonPathVersion"
377+
optionalApi "com.jayway.jsonpath:json-path:$jaywayJsonPathVersion"
398378

399379
testImplementation "org.assertj:assertj-core:$assertjVersion"
400380
}
@@ -434,22 +414,22 @@ project('spring-rabbit') {
434414
api 'org.springframework:spring-messaging'
435415
api 'org.springframework:spring-tx'
436416
api 'io.micrometer:micrometer-observation'
437-
optional 'org.springframework:spring-aop'
438-
optional 'org.springframework:spring-webflux'
439-
optional "org.apache.httpcomponents.client5:httpclient5:$commonsHttpClientVersion"
440-
optional 'io.projectreactor:reactor-core'
441-
optional 'io.projectreactor.netty:reactor-netty-http'
442-
optional "ch.qos.logback:logback-classic:$logbackVersion"
443-
optional 'org.apache.logging.log4j:log4j-core'
444-
optional 'io.micrometer:micrometer-core'
445-
optional 'io.micrometer:micrometer-tracing'
417+
optionalApi 'org.springframework:spring-aop'
418+
optionalApi 'org.springframework:spring-webflux'
419+
optionalApi "org.apache.httpcomponents.client5:httpclient5:$commonsHttpClientVersion"
420+
optionalApi 'io.projectreactor:reactor-core'
421+
optionalApi 'io.projectreactor.netty:reactor-netty-http'
422+
optionalApi "ch.qos.logback:logback-classic:$logbackVersion"
423+
optionalApi 'org.apache.logging.log4j:log4j-core'
424+
optionalApi 'io.micrometer:micrometer-core'
425+
optionalApi 'io.micrometer:micrometer-tracing'
446426
// Spring Data projection message binding support
447-
optional("org.springframework.data:spring-data-commons") {
427+
optionalApi("org.springframework.data:spring-data-commons") {
448428
exclude group: 'org.springframework'
449429
}
450-
optional "com.jayway.jsonpath:json-path:$jaywayJsonPathVersion"
451-
optional "org.apache.commons:commons-pool2:$commonsPoolVersion"
452-
optional "org.jetbrains.kotlinx:kotlinx-coroutines-reactor:$kotlinCoroutinesVersion"
430+
optionalApi "com.jayway.jsonpath:json-path:$jaywayJsonPathVersion"
431+
optionalApi "org.apache.commons:commons-pool2:$commonsPoolVersion"
432+
optionalApi "org.jetbrains.kotlinx:kotlinx-coroutines-reactor:$kotlinCoroutinesVersion"
453433

454434
testApi project(':spring-rabbit-junit')
455435
testImplementation("com.willowtreeapps.assertk:assertk-jvm:$assertkVersion")
@@ -483,7 +463,7 @@ project('spring-rabbit-stream') {
483463
dependencies {
484464
api project(':spring-rabbit')
485465
api "com.rabbitmq:stream-client:$rabbitmqStreamVersion"
486-
optional 'io.micrometer:micrometer-core'
466+
optionalApi 'io.micrometer:micrometer-core'
487467

488468
testApi project(':spring-rabbit-junit')
489469
testRuntimeOnly 'com.fasterxml.jackson.core:jackson-core'
@@ -515,13 +495,13 @@ project('spring-rabbit-junit') {
515495
api 'org.springframework:spring-web'
516496
api 'org.junit.jupiter:junit-jupiter-api'
517497
api "org.assertj:assertj-core:$assertjVersion"
518-
optional("junit:junit:$junit4Version") {
498+
optionalApi("junit:junit:$junit4Version") {
519499
exclude group: 'org.hamcrest', module: 'hamcrest-core'
520500
}
521-
optional "org.testcontainers:rabbitmq"
522-
optional "org.testcontainers:junit-jupiter"
523-
optional "ch.qos.logback:logback-classic:$logbackVersion"
524-
optional 'org.apache.logging.log4j:log4j-core'
501+
optionalApi "org.testcontainers:rabbitmq"
502+
optionalApi "org.testcontainers:junit-jupiter"
503+
optionalApi "ch.qos.logback:logback-classic:$logbackVersion"
504+
optionalApi 'org.apache.logging.log4j:log4j-core'
525505
compileOnly 'org.apiguardian:apiguardian-api:1.0.0'
526506
}
527507
}

0 commit comments

Comments
 (0)