Skip to content

Commit 713e600

Browse files
Extract method for adding dependency to POM
1 parent 8fa601d commit 713e600

File tree

1 file changed

+30
-55
lines changed

1 file changed

+30
-55
lines changed

build.gradle

Lines changed: 30 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,27 @@ task packageDistroWithDependencies(type: Zip, dependsOn: buildDistroWithDependen
264264

265265
assemble.dependsOn packageLanguages, packageTests
266266

267+
static def addDependency(Object pom, Object groupId, Object artifactId, Object version, Object type = null) {
268+
pom.withXml { XmlProvider prov ->
269+
Node root = prov.asNode()
270+
Node deps = root.dependencies[0] ?: root.appendNode("dependencies")
271+
def dep = deps.appendNode("dependency")
272+
dep.appendNode("groupId", groupId)
273+
dep.appendNode("artifactId", artifactId)
274+
dep.appendNode("version", version)
275+
if (type != null) {
276+
dep.appendNode("type", type)
277+
}
278+
}
279+
}
280+
281+
static def addDependency(Object pom, Configuration config) {
282+
config.resolvedConfiguration.firstLevelModuleDependencies.each {
283+
addDependency(pom, it.moduleGroup, it.moduleName, it.moduleVersion, it.moduleArtifacts[0].type)
284+
}
285+
286+
}
287+
267288
publishing {
268289
repositories {
269290
maven {
@@ -296,39 +317,16 @@ publishing {
296317
groupId 'org.iets3'
297318
artifactId 'opensource'
298319
artifact packageLanguages
299-
pom.withXml {
300-
def dependenciesNode = asNode().appendNode('dependencies')
301-
configurations.languageLibs.resolvedConfiguration.firstLevelModuleDependencies.each{
302-
def dependencyNode = dependenciesNode.appendNode('dependency')
303-
dependencyNode.appendNode('groupId', it.moduleGroup)
304-
dependencyNode.appendNode('artifactId', it.moduleName)
305-
dependencyNode.appendNode('version', it.moduleVersion)
306-
dependencyNode.appendNode('type', it.moduleArtifacts[0].type)
307-
}
308-
configurations.mps.resolvedConfiguration.firstLevelModuleDependencies.each{
309-
def dependencyNode = dependenciesNode.appendNode('dependency')
310-
dependencyNode.appendNode('groupId', it.moduleGroup)
311-
dependencyNode.appendNode('artifactId', it.moduleName)
312-
dependencyNode.appendNode('version', it.moduleVersion)
313-
dependencyNode.appendNode('type', it.moduleArtifacts[0].type)
314-
dependencyNode.appendNode('scope', 'provided')
315-
}
316-
}
320+
321+
addDependency(pom, configurations.languageLibs)
317322
}
323+
318324
tests(MavenPublication) {
319325
groupId 'org.iets3.opensource'
320326
artifactId 'tests'
321327
artifact packageTests
322-
pom.withXml {
323-
def dependenciesNode = asNode().appendNode('dependencies')
324-
configurations.mps.resolvedConfiguration.firstLevelModuleDependencies.each{
325-
def dependencyNode = dependenciesNode.appendNode('dependency')
326-
dependencyNode.appendNode('groupId', it.moduleGroup)
327-
dependencyNode.appendNode('artifactId', it.moduleName)
328-
dependencyNode.appendNode('version', it.moduleVersion)
329-
dependencyNode.appendNode('type', it.moduleArtifacts[0].type)
330-
}
331-
}
328+
329+
addDependency(pom, 'org.iets3', 'opensource', project.version, 'zip')
332330
}
333331

334332
def runtimesDir = new File(artifactsDir, 'org.iets3.opensource/org.iets3.core.os/languages/iets3.core.os')
@@ -357,15 +355,7 @@ publishing {
357355
classifier 'sources'
358356
}
359357

360-
pom.withXml {
361-
def deps = asNode().appendNode('dependencies')
362-
363-
// depends on shared
364-
def dep = deps.appendNode('dependency')
365-
dep.appendNode('groupId', 'org.iets3.core.expr.base.shared')
366-
dep.appendNode('artifactId', 'shared-runtime')
367-
dep.appendNode('version', project.version)
368-
}
358+
addDependency(pom, 'org.iets3.core.expr.base.shared', 'shared-runtime', project.version)
369359
}
370360

371361
'org.iets3.core.expr.datetime.runtime'(MavenPublication) {
@@ -379,15 +369,7 @@ publishing {
379369
classifier 'sources'
380370
}
381371

382-
pom.withXml {
383-
def deps = asNode().appendNode('dependencies')
384-
385-
// depends on shared
386-
def dep = deps.appendNode('dependency')
387-
dep.appendNode('groupId', 'org.iets3.core.expr.base.shared')
388-
dep.appendNode('artifactId', 'shared-runtime')
389-
dep.appendNode('version', project.version)
390-
}
372+
addDependency(pom, 'org.iets3.core.expr.base.shared', 'shared-runtime', project.version)
391373
}
392374

393375
'org.iets3.core.expr.temporal.runtime'(MavenPublication) {
@@ -400,15 +382,8 @@ publishing {
400382
builtBy buildLanguages
401383
classifier 'sources'
402384
}
403-
pom.withXml {
404-
def deps = asNode().appendNode('dependencies')
405-
406-
// depends on datetime
407-
def dep = deps.appendNode('dependency')
408-
dep.appendNode('groupId', 'org.iets3.core.expr.datetime')
409-
dep.appendNode('artifactId', 'datetime-runtime')
410-
dep.appendNode('version', project.version)
411-
}
385+
386+
addDependency(pom, 'org.iets3.core.expr.datetime', 'datetime-runtime', project.version)
412387
}
413388
}
414389
}

0 commit comments

Comments
 (0)