@@ -25,13 +25,15 @@ package com.github.jrubygradle.internal.gems
25
25
26
26
import com.github.jrubygradle.api.gems.GemVersion
27
27
import com.github.jrubygradle.api.gems.GemGroups
28
+ import groovy.transform.CompileDynamic
28
29
import groovy.transform.PackageScope
29
30
import org.gradle.api.Action
30
31
import org.gradle.api.GradleException
31
32
import org.gradle.api.artifacts.Configuration
32
33
import org.gradle.api.artifacts.DependencyResolveDetails
33
34
import org.gradle.api.logging.Logger
34
35
import org.gradle.api.logging.Logging
36
+ import org.gradle.util.GradleVersion
35
37
36
38
import static com.github.jrubygradle.api.gems.GemVersion.gemVersionFromGradleIvyRequirement
37
39
@@ -81,6 +83,8 @@ class GemVersionResolver {
81
83
logger. debug(" ${ configuration} resolved ${ next} " )
82
84
83
85
details. useVersion(next. toString())
86
+ withReason(details," Selected by GEM Version Resolver" )
87
+
84
88
} else {
85
89
GemVersion next = gemVersionFromGradleIvyRequirement(details. requested. version)
86
90
versions[details. requested. name] = next
@@ -113,9 +117,17 @@ class GemVersionResolver {
113
117
)
114
118
}
115
119
120
+ @CompileDynamic
121
+ void withReason (DependencyResolveDetails drd , String reason ) {
122
+ if (HAS_BECAUSE_PROPERTY ) {
123
+ drd. because(reason)
124
+ }
125
+ }
126
+
116
127
@PackageScope
117
128
static final GemVersionResolver NULL_RESOLVER = new GemVersionResolver ()
118
129
130
+ private static final HAS_BECAUSE_PROPERTY = GradleVersion . current() >= GradleVersion . version(' 4.5' )
119
131
private static final String DBG_SEPARATOR = ' ------------------------'
120
132
private final Map versions = [:]
121
133
private final Configuration configuration
0 commit comments