Skip to content

Commit cbf7caf

Browse files
committed
Add kotlin script to dump managed components
This could be the start of code to automatically generate a SciJava gradle catalog; see: https://docs.gradle.org/current/userguide/platforms.html#sub:version-catalog
1 parent 765f28f commit cbf7caf

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

gradle/catalog.kts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/usr/bin/env kscript
2+
3+
@file:DependsOn("org.scijava:scijava-common:2.94.1")
4+
5+
import java.io.File
6+
import java.util.ArrayList
7+
import org.scijava.util.POM
8+
import org.scijava.util.XML
9+
import org.w3c.dom.Element
10+
11+
val pom: POM = POM(File(args[0]))
12+
13+
val deps = pom.elements("//project/dependencyManagement/dependencies/dependency")
14+
15+
deps.forEach { dep ->
16+
val g: String = XML.cdata(dep, "groupId")
17+
val a: String = XML.cdata(dep, "artifactId")
18+
val v: String = XML.cdata(dep, "version")
19+
val exclusionsElement: List<Element> = XML.elements(dep, "exclusions")
20+
val exclusions: List<Element> = if (exclusionsElement.isEmpty()) emptyList() else XML.elements(exclusionsElement[0], "exclusion")
21+
println("$g : $a : $v -- # of exclusions = ${exclusions.size}")
22+
}

gradle/generate-catalog.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/sh
2+
dir=$(dirname "$0")
3+
pom="$dir/../pom.xml"
4+
mvn -B -f "$pom" help:effective-pom |
5+
grep -A9999999 '^<?xml' |
6+
grep -B9999999 '^</project>' > eff.xml
7+
"$dir/catalog.kts" eff.xml
8+
rm eff.xml

0 commit comments

Comments
 (0)