@@ -16,6 +16,69 @@ class CombinationWithOtherPluginsFunctionalTest extends Specification {
16
16
settingsFile << ' rootProject.name = "test-project"'
17
17
}
18
18
19
+ def " mergeJar uses versions configured through jvm-dependency-conflict-resolution plugin" () {
20
+ given :
21
+ file(" src/main/java/org/gradle/sample/app/Main.java" ) << """
22
+ package org.gradle.sample.app;
23
+ public class Main {
24
+ public static void main(String[] args) {
25
+ Class<?> loggerFromApi = org.slf4j.Logger.class;
26
+ Class<?> ndcFromExt = org.slf4j.NDC.class;
27
+ }
28
+ }
29
+ """
30
+ file(" src/main/java/module-info.java" ) << """
31
+ module org.gradle.sample.app {
32
+ requires org.slf4j;
33
+ }
34
+ """
35
+ settingsFile << """
36
+ include("versions")
37
+ """
38
+ file(' versions/build.gradle.kts' ) << """
39
+ plugins { id("java-platform") }
40
+ dependencies.constraints {
41
+ api("org.slf4j:slf4j-api:1.7.32")
42
+ api("org.slf4j:slf4j-ext:1.7.32")
43
+ }
44
+ """
45
+ buildFile << """
46
+ plugins {
47
+ id("application")
48
+ id("org.gradlex.extra-java-module-info")
49
+ id("org.gradlex.jvm-dependency-conflict-resolution") version "2.1.2"
50
+ }
51
+ application.mainClass.set("org.gradle.sample.app.Main")
52
+ dependencies {
53
+ implementation("org.slf4j:slf4j-api")
54
+ }
55
+ jvmDependencyConflicts {
56
+ consistentResolution {
57
+ providesVersions(":")
58
+ platform(":versions")
59
+ }
60
+ }
61
+ extraJavaModuleInfo {
62
+ automaticModule("org.slf4j:slf4j-api", "org.slf4j") {
63
+ mergeJar("org.slf4j:slf4j-ext")
64
+ }
65
+ }
66
+ tasks.named("run") {
67
+ inputs.files(configurations.runtimeClasspath)
68
+ doLast { println(inputs.files.map { it.name }) }
69
+ }
70
+ """
71
+
72
+ when :
73
+ def result = run()
74
+
75
+ then :
76
+ result. task(" :run" ). outcome == TaskOutcome . SUCCESS
77
+ result. output. contains(' slf4j-api-1.7.32-module.jar' )
78
+ ! result. output. contains(' slf4j-api-1.7.32.jar' )
79
+ ! result. output. contains(' slf4j-ext-1.7.32.jar' )
80
+ }
81
+
19
82
@IgnoreIf ({ !GradleBuild .gradleVersionUnderTest?.startsWith(' 7.' ) })
20
83
def " works in combination with shadow plugin" () {
21
84
def shadowJar = file(" app/build/libs/app-all.jar" )
0 commit comments