18
18
19
19
package com.netflix.graphql.dgs.codegen.gradle
20
20
21
+ import nebula.plugin.dependencylock.DependencyLockExtension
21
22
import org.gradle.api.Project
22
23
import org.gradle.api.logging.Logging
23
24
import java.io.FileNotFoundException
@@ -29,6 +30,7 @@ object ClientUtilsConventions {
29
30
30
31
private const val CLIENT_UTILS_ARTIFACT_GROUP = " com.netflix.graphql.dgs.codegen"
31
32
private const val CLIENT_UTILS_ARTIFACT_NAME = " graphql-dgs-codegen-shared-core"
33
+ private const val CLIENT_UTILS_NEBULA_LOCK_ID = " com.netflix.nebula.dependency-lock"
32
34
33
35
private val logger = Logging .getLogger(ClientUtilsConventions ::class .java)
34
36
@@ -38,10 +40,23 @@ object ClientUtilsConventions {
38
40
optionalCodeClientDependencyScope : Optional <String > = Optional .empty()
39
41
) {
40
42
clientCoreArtifact(optionalCodeUtilsVersion).ifPresent { dependencyString ->
43
+ val dependencyLockString = dependencyString.split(" :" ).take(2 ).joinToString(" :" )
44
+
41
45
val dependencyConfiguration = optionalCodeClientDependencyScope.orElse(GRADLE_CLASSPATH_CONFIGURATION )
42
46
val configurationDependencies = project.configurations.getByName(dependencyConfiguration).dependencies
43
47
configurationDependencies.add(project.dependencies.create(dependencyString))
44
48
logger.info(" DGS CodeGen added [{}] to the {} dependencies." , dependencyString, dependencyConfiguration)
49
+
50
+ project.dependencyLocking.ignoredDependencies.add(dependencyLockString)
51
+ logger.info(" DGS CodeGen added [{}] to the ignoredDependencies." , dependencyLockString, dependencyConfiguration)
52
+
53
+ project.plugins.withId(CLIENT_UTILS_NEBULA_LOCK_ID ) {
54
+ val extension = project.extensions.getByType(DependencyLockExtension ::class .java)
55
+ if (extension != null ) {
56
+ extension.skippedDependencies.add(dependencyLockString)
57
+ logger.info(" DGS CodeGen added [{}] to the skippedDependencies." , dependencyLockString, dependencyConfiguration)
58
+ }
59
+ }
45
60
}
46
61
}
47
62
0 commit comments