Skip to content

Commit bb4a934

Browse files
committed
Extract top-level task class
1 parent e41d80d commit bb4a934

File tree

2 files changed

+41
-13
lines changed

2 files changed

+41
-13
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package org.junit.gradle.java
2+
3+
import org.gradle.api.DefaultTask
4+
import org.gradle.api.artifacts.Configuration
5+
import org.gradle.api.artifacts.ModuleVersionIdentifier
6+
import org.gradle.api.artifacts.ResolvedArtifact
7+
import org.gradle.api.file.RegularFileProperty
8+
import org.gradle.api.provider.Property
9+
import org.gradle.api.provider.Provider
10+
import org.gradle.api.provider.SetProperty
11+
import org.gradle.api.tasks.*
12+
13+
abstract class WriteArtifactsFile : DefaultTask() {
14+
15+
@get:OutputFile
16+
abstract val outputFile: RegularFileProperty
17+
18+
@get:Input
19+
abstract val moduleVersions: SetProperty<ModuleVersionIdentifier>
20+
21+
fun from(configuration: Provider<Configuration>) {
22+
moduleVersions.addAll(configuration.map {
23+
it.resolvedConfiguration.resolvedArtifacts.map { it.moduleVersion.id }
24+
})
25+
}
26+
27+
@TaskAction
28+
fun writeFile() {
29+
outputFile.get().asFile.printWriter().use { out ->
30+
moduleVersions.get()
31+
.map { "${it.group}:${it.name}:${it.version}" }
32+
.sorted()
33+
.forEach(out::println)
34+
}
35+
}
36+
}

junit-platform-console-standalone/junit-platform-console-standalone.gradle.kts

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import org.junit.gradle.java.WriteArtifactsFile
2+
13
plugins {
24
`java-library-conventions`
35
`shadow-conventions`
@@ -26,19 +28,9 @@ tasks {
2628
attributes("Main-Class" to "org.junit.platform.console.ConsoleLauncher")
2729
}
2830
}
29-
val shadowedArtifactsFile by registering {
30-
inputs.files(configurations.shadowed).withNormalizer(ClasspathNormalizer::class)
31-
val outputFile = layout.buildDirectory.file("shadowed-artifacts")
32-
outputs.file(outputFile)
33-
doFirst {
34-
outputFile.get().asFile.printWriter().use { out ->
35-
configurations.shadowed.get().resolvedConfiguration.resolvedArtifacts
36-
.map { it.moduleVersion.id }
37-
.map { "${it.group}:${it.name}:${it.version}" }
38-
.sorted()
39-
.forEach(out::println)
40-
}
41-
}
31+
val shadowedArtifactsFile by registering(WriteArtifactsFile::class) {
32+
from(configurations.shadowed)
33+
outputFile.set(layout.buildDirectory.file("shadowed-artifacts"))
4234
}
4335
shadowJar {
4436
// https://github.com/junit-team/junit5/issues/2557

0 commit comments

Comments
 (0)