Skip to content

Commit

Permalink
Use javaLibraryPlatform to generate BOM
Browse files Browse the repository at this point in the history
  • Loading branch information
marcphilipp committed Dec 7, 2018
1 parent ac25887 commit 77e4bc0
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 26 deletions.
8 changes: 4 additions & 4 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,6 @@ allprojects {
maven(url = "https://oss.sonatype.org/content/repositories/snapshots")
}

dependencies {
api("org.apiguardian:apiguardian-api:${Versions.apiGuardian}")
}

tasks.compileJava {
options.encoding = "UTF-8"

Expand Down Expand Up @@ -212,6 +208,10 @@ subprojects {

apply(from = "$rootDir/gradle/publishing.gradle.kts")

dependencies {
api("org.apiguardian:apiguardian-api:${Versions.apiGuardian}")
}

tasks.javadoc {
options {
memberLevel = JavadocMemberLevel.PROTECTED
Expand Down
32 changes: 10 additions & 22 deletions junit-bom/junit-bom.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,19 @@ description = "${rootProject.description} (Bill of Materials)"

apply(from = "$rootDir/gradle/publishing.gradle.kts")

dependencies {
constraints {
val mavenizedProjects: List<Project> by rootProject.extra
mavenizedProjects.sorted()
.filter { it.name != "junit-platform-console-standalone" }
.forEach { api("${it.group}:${it.name}:${it.version}") }
}
}

the<PublishingExtension>().publications.named<MavenPublication>("maven") {
from(components["javaLibraryPlatform"])
pom {
packaging = "pom"
description.set("This Bill of Materials POM can be used to ease dependency management " +
"when referencing multiple JUnit artifacts using Gradle or Maven.")
withXml {
asElement().apply {
getElementsByTagName("dependencies")
.let { children -> (0 until children.length).map { children.item(it) } }
.forEach { removeChild(it) }
appendChild(ownerDocument.createElement("dependencyManagement")).apply {
appendChild(ownerDocument.createElement("dependencies")).apply {
val mavenizedProjects: List<Project> by rootProject.extra
mavenizedProjects.sorted()
.filter { it != project(":junit-platform-console-standalone") }
.forEach { project ->
appendChild(ownerDocument.createElement("dependency")).apply {
appendChild(ownerDocument.createElement("groupId")).textContent = project.group as String
appendChild(ownerDocument.createElement("artifactId")).textContent = project.name
appendChild(ownerDocument.createElement("version")).textContent = project.version as String
}
}
}
}
}
}
}
}

0 comments on commit 77e4bc0

Please sign in to comment.