@@ -169,27 +169,12 @@ configure(javaProjects) { subproject ->
169
169
170
170
apply from : " ${ rootProject.projectDir} /gradle/publish-maven.gradle"
171
171
172
- def scopeAttribute = Attribute . of(' dependency.scope' , String )
173
-
174
- configurations {
175
- optional {
176
- attributes {
177
- attribute(scopeAttribute, ' optional' )
178
- }
179
- }
180
-
181
- compileClasspath. extendsFrom(optional)
182
- testCompileClasspath. extendsFrom(optional)
183
- testRuntimeClasspath. extendsFrom(optional)
184
- }
185
-
186
- components. java. addVariantsFromConfiguration(configurations. optional) {
187
- mapToOptional()
188
- }
189
-
190
172
java {
191
173
withJavadocJar()
192
174
withSourcesJar()
175
+ registerFeature(' optional' ) {
176
+ usingSourceSet(sourceSets. main)
177
+ }
193
178
}
194
179
195
180
compileJava {
@@ -210,10 +195,6 @@ configure(javaProjects) { subproject ->
210
195
211
196
// dependencies that are common across all java projects
212
197
dependencies {
213
- attributesSchema {
214
- attribute(scopeAttribute)
215
- }
216
-
217
198
def spotbugsAnnotations = " com.github.spotbugs:spotbugs-annotations:${ spotbugs.toolVersion.get()} "
218
199
compileOnly spotbugsAnnotations
219
200
testCompileOnly spotbugsAnnotations
@@ -261,7 +242,6 @@ configure(javaProjects) { subproject ->
261
242
tasks. register(' updateCopyrights' ) {
262
243
onlyIf { ! isCI }
263
244
inputs. files(modifiedFiles. filter { f -> f. path. contains(subproject. name) })
264
- outputs. dir(' build/classes' )
265
245
266
246
doLast {
267
247
def now = Calendar . instance. get(Calendar . YEAR ) as String
@@ -374,26 +354,26 @@ project('spring-amqp') {
374
354
api(" org.springframework.retry:spring-retry:$springRetryVersion " ) {
375
355
exclude group : ' org.springframework'
376
356
}
377
- optional ' org.springframework:spring-messaging'
378
- optional ' org.springframework:spring-oxm'
379
- optional ' org.springframework:spring-context'
380
- optional ' com.fasterxml.jackson.core:jackson-core'
381
- optional ' com.fasterxml.jackson.core:jackson-databind'
382
- optional ' com.fasterxml.jackson.core:jackson-annotations'
383
- optional ' com.fasterxml.jackson.dataformat:jackson-dataformat-xml'
384
- optional ' com.fasterxml.jackson.datatype:jackson-datatype-jdk8'
385
- optional ' com.fasterxml.jackson.module:jackson-module-parameter-names'
386
- optional ' com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
387
- optional ' com.fasterxml.jackson.datatype:jackson-datatype-joda'
388
- optional (' com.fasterxml.jackson.module:jackson-module-kotlin' ) {
357
+ optionalApi ' org.springframework:spring-messaging'
358
+ optionalApi ' org.springframework:spring-oxm'
359
+ optionalApi ' org.springframework:spring-context'
360
+ optionalApi ' com.fasterxml.jackson.core:jackson-core'
361
+ optionalApi ' com.fasterxml.jackson.core:jackson-databind'
362
+ optionalApi ' com.fasterxml.jackson.core:jackson-annotations'
363
+ optionalApi ' com.fasterxml.jackson.dataformat:jackson-dataformat-xml'
364
+ optionalApi ' com.fasterxml.jackson.datatype:jackson-datatype-jdk8'
365
+ optionalApi ' com.fasterxml.jackson.module:jackson-module-parameter-names'
366
+ optionalApi ' com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
367
+ optionalApi ' com.fasterxml.jackson.datatype:jackson-datatype-joda'
368
+ optionalApi (' com.fasterxml.jackson.module:jackson-module-kotlin' ) {
389
369
exclude group : ' org.jetbrains.kotlin'
390
370
}
391
371
// Spring Data projection message binding support
392
- optional (' org.springframework.data:spring-data-commons' ) {
372
+ optionalApi (' org.springframework.data:spring-data-commons' ) {
393
373
exclude group : ' org.springframework'
394
374
exclude group : ' io.micrometer'
395
375
}
396
- optional " com.jayway.jsonpath:json-path:$jaywayJsonPathVersion "
376
+ optionalApi " com.jayway.jsonpath:json-path:$jaywayJsonPathVersion "
397
377
398
378
testImplementation " org.assertj:assertj-core:$assertjVersion "
399
379
}
@@ -433,22 +413,22 @@ project('spring-rabbit') {
433
413
api ' org.springframework:spring-messaging'
434
414
api ' org.springframework:spring-tx'
435
415
api ' io.micrometer:micrometer-observation'
436
- optional ' org.springframework:spring-aop'
437
- optional ' org.springframework:spring-webflux'
438
- optional " org.apache.httpcomponents.client5:httpclient5:$commonsHttpClientVersion "
439
- optional ' io.projectreactor:reactor-core'
440
- optional ' io.projectreactor.netty:reactor-netty-http'
441
- optional " ch.qos.logback:logback-classic:$logbackVersion "
442
- optional ' org.apache.logging.log4j:log4j-core'
443
- optional ' io.micrometer:micrometer-core'
444
- optional ' io.micrometer:micrometer-tracing'
416
+ optionalApi ' org.springframework:spring-aop'
417
+ optionalApi ' org.springframework:spring-webflux'
418
+ optionalApi " org.apache.httpcomponents.client5:httpclient5:$commonsHttpClientVersion "
419
+ optionalApi ' io.projectreactor:reactor-core'
420
+ optionalApi ' io.projectreactor.netty:reactor-netty-http'
421
+ optionalApi " ch.qos.logback:logback-classic:$logbackVersion "
422
+ optionalApi ' org.apache.logging.log4j:log4j-core'
423
+ optionalApi ' io.micrometer:micrometer-core'
424
+ optionalApi ' io.micrometer:micrometer-tracing'
445
425
// Spring Data projection message binding support
446
- optional (" org.springframework.data:spring-data-commons" ) {
426
+ optionalApi (" org.springframework.data:spring-data-commons" ) {
447
427
exclude group : ' org.springframework'
448
428
}
449
- optional " com.jayway.jsonpath:json-path:$jaywayJsonPathVersion "
450
- optional " org.apache.commons:commons-pool2:$commonsPoolVersion "
451
- optional " org.jetbrains.kotlinx:kotlinx-coroutines-reactor:$kotlinCoroutinesVersion "
429
+ optionalApi " com.jayway.jsonpath:json-path:$jaywayJsonPathVersion "
430
+ optionalApi " org.apache.commons:commons-pool2:$commonsPoolVersion "
431
+ optionalApi " org.jetbrains.kotlinx:kotlinx-coroutines-reactor:$kotlinCoroutinesVersion "
452
432
453
433
testApi project(' :spring-rabbit-junit' )
454
434
testImplementation(" com.willowtreeapps.assertk:assertk-jvm:$assertkVersion " )
@@ -482,7 +462,7 @@ project('spring-rabbit-stream') {
482
462
dependencies {
483
463
api project(' :spring-rabbit' )
484
464
api " com.rabbitmq:stream-client:$rabbitmqStreamVersion "
485
- optional ' io.micrometer:micrometer-core'
465
+ optionalApi ' io.micrometer:micrometer-core'
486
466
487
467
testApi project(' :spring-rabbit-junit' )
488
468
testRuntimeOnly ' com.fasterxml.jackson.core:jackson-core'
@@ -514,13 +494,13 @@ project('spring-rabbit-junit') {
514
494
api ' org.springframework:spring-web'
515
495
api ' org.junit.jupiter:junit-jupiter-api'
516
496
api " org.assertj:assertj-core:$assertjVersion "
517
- optional (" junit:junit:$junit4Version " ) {
497
+ optionalApi (" junit:junit:$junit4Version " ) {
518
498
exclude group : ' org.hamcrest' , module : ' hamcrest-core'
519
499
}
520
- optional " org.testcontainers:rabbitmq"
521
- optional " org.testcontainers:junit-jupiter"
522
- optional " ch.qos.logback:logback-classic:$logbackVersion "
523
- optional ' org.apache.logging.log4j:log4j-core'
500
+ optionalApi " org.testcontainers:rabbitmq"
501
+ optionalApi " org.testcontainers:junit-jupiter"
502
+ optionalApi " ch.qos.logback:logback-classic:$logbackVersion "
503
+ optionalApi ' org.apache.logging.log4j:log4j-core'
524
504
compileOnly ' org.apiguardian:apiguardian-api:1.0.0'
525
505
}
526
506
}
0 commit comments