Fix project Maven BOM generation.
Specifically, fixed the generation of the Maven POM (BOM) dependencyManagement block.
This commit is contained in:
@@ -45,24 +45,26 @@ class MavenBomPlugin implements Plugin<Project> {
|
||||
description: 'Configures the Maven POM as a Maven BOM (Bill of Materials)')
|
||||
|
||||
project.tasks.artifactoryPublish.dependsOn project.mavenBom
|
||||
project.tasks.publishToMavenLocal.dependsOn project.mavenBom
|
||||
project.tasks.publishToOssrh.dependsOn project.mavenBom
|
||||
|
||||
project.rootProject.allprojects.each { p ->
|
||||
p.plugins.withType(SpringMavenPlugin) {
|
||||
if (!project.name.equals(p.name)) {
|
||||
//println("Maven BOM Project [${p.name}]")
|
||||
project.mavenBom.projects.add(p)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Why?
|
||||
Utils.configureDeployArtifactsTask(project)
|
||||
|
||||
// TODO: Shouldn't this be { archives project.mavenBom } according to:
|
||||
// https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html#getArtifacts--
|
||||
// TODO: Is this even necessary since this block is defined in MavenBomTask?
|
||||
project.artifacts {
|
||||
archives project.mavenBom.bomFile
|
||||
}
|
||||
|
||||
// TODO: Why?
|
||||
Utils.configureDeployArtifactsTask(project)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,8 +35,8 @@ class MavenBomTask extends DefaultTask {
|
||||
void configureBom() {
|
||||
|
||||
bomFile.parentFile.mkdirs()
|
||||
bomFile.write("Maven BOM (Bill of Materials)" +
|
||||
" See https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies")
|
||||
bomFile.write("Maven BOM (Bill of Materials)"
|
||||
+ " See https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies")
|
||||
|
||||
// TODO: Shouldn't this be { archives project.mavenBom } according to:
|
||||
// https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html#getArtifacts--
|
||||
@@ -45,25 +45,27 @@ class MavenBomTask extends DefaultTask {
|
||||
archives(bomFile)
|
||||
}
|
||||
|
||||
def pomDependencyManagementNode = {
|
||||
delegate.dependencyManagement {
|
||||
delegate.dependencies {
|
||||
projects.sort { dep -> "$dep.group:$dep.name" }.each { p ->
|
||||
delegate.dependency {
|
||||
delegate.groupId p.group
|
||||
delegate.artifactId p.name
|
||||
delegate.version p.version
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
project.publishing {
|
||||
publications {
|
||||
mavenJava(MavenPublication) {
|
||||
pom {
|
||||
packaging = "pom"
|
||||
withXml {
|
||||
asNode().children().last() + {
|
||||
delegate.dependencyManagement {
|
||||
delegate.dependencies {
|
||||
projects.sort { dep -> "$dep.group:$dep.name" }.each { p ->
|
||||
delegate.dependency {
|
||||
delegate.groupId(p.group)
|
||||
delegate.artifactId(p.name)
|
||||
delegate.version(p.version)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
asNode().children().last() + pomDependencyManagementNode
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user