@@ -141,12 +141,41 @@ abstract class GdkParentPlugin implements Plugin<Project> {
141141 xml. asNode(). append(dependencyManagement)
142142
143143 Node dependencies = childOf(dependencyManagement, " dependencies" )
144- Node dependency = new Node (dependencies, " dependency" , " " )
145- new Node (dependency, " groupId" , " cloud.graal.gdk" )
146- new Node (dependency, " artifactId" , " gdk-bom" )
147- new Node (dependency, " version" , project. version)
148- new Node (dependency, " type" , " pom" )
149- new Node (dependency, " scope" , " import" )
144+ Node gdkBomDependency = new Node (dependencies, " dependency" , " " )
145+ new Node (gdkBomDependency, " groupId" , " cloud.graal.gdk" )
146+ new Node (gdkBomDependency, " artifactId" , " gdk-bom" )
147+ new Node (gdkBomDependency, " version" , project. version)
148+ new Node (gdkBomDependency, " type" , " pom" )
149+ new Node (gdkBomDependency, " scope" , " import" )
150+
151+ dependencyExclusion. exclusions. forEach {
152+ String [] exclusionDependencyStrings = it. name. split(' :' )
153+ it. from. forEach { parentDependency ->
154+ def dependencyStrings = parentDependency. split(" :" )
155+ def pomDep = dependencies. children()
156+ .find {
157+ n -> childOf(n as Node , " groupId" ). text() == dependencyStrings[0 ] && childOf(n as Node , " artifactId" ). text() == dependencyStrings[1 ]
158+ }
159+
160+ Node dependency = pomDep as Node
161+ if (dependency == null ) {
162+ dependency = new Node (dependencies, " dependency" )
163+ new Node (dependency, " groupId" , dependencyStrings[0 ])
164+ new Node (dependency, " artifactId" , dependencyStrings[1 ])
165+ }
166+
167+ def pomExc = dependency. children(). find { n -> childOf(n as Node , " exclusions" ) }
168+
169+ def exclusions = pomExc as Node
170+ if (exclusions == null ) {
171+ exclusions = new Node (dependency, " exclusions" )
172+ }
173+ def exclusion = new Node (exclusions, " exclusion" )
174+ new Node (exclusion, " groupId" , exclusionDependencyStrings[0 ])
175+ new Node (exclusion, " artifactId" , exclusionDependencyStrings[1 ])
176+ }
177+ }
178+
150179 }
151180 })
152181 })
0 commit comments