Browse Source

Use spring-build-conventions Bom plugin

Fixes gh-4954
pull/4904/head
Rob Winch 8 years ago
parent
commit
e49e430538
  1. 3
      bom/spring-security-bom.gradle
  2. 2
      build.gradle
  3. 21
      buildSrc/src/main/groovy/MavenBomPlugin.groovy
  4. 55
      buildSrc/src/main/groovy/MavenBomTask.groovy
  5. 1
      buildSrc/src/main/resources/META-INF/gradle-plugins/maven-bom.properties

3
bom/spring-security-bom.gradle

@ -1,5 +1,4 @@ @@ -1,5 +1,4 @@
apply plugin: 'maven-bom'
apply plugin: 'io.spring.convention.artifactory'
apply plugin: 'io.spring.convention.bom'
sonarqube.skipProject = true

2
build.gradle

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
buildscript {
dependencies {
classpath 'io.spring.gradle:spring-build-conventions:0.0.8.RELEASE'
classpath 'io.spring.gradle:spring-build-conventions:0.0.9.BUILD-SNAPSHOT'
classpath "org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion"
}
repositories {

21
buildSrc/src/main/groovy/MavenBomPlugin.groovy

@ -1,21 +0,0 @@ @@ -1,21 +0,0 @@
import org.gradle.api.DefaultTask
import org.gradle.api.GradleException
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.plugins.*
import org.gradle.api.tasks.*
import org.gradle.api.tasks.TaskAction
public class MavenBomPlugin implements Plugin<Project> {
static String MAVEN_BOM_TASK_NAME = "mavenBom"
public void apply(Project project) {
project.plugins.apply(JavaPlugin)
project.plugins.apply(MavenPlugin)
project.group = project.rootProject.group
project.task(MAVEN_BOM_TASK_NAME, type: MavenBomTask, group: 'Generate', description: 'Configures the pom as a Maven Build of Materials (BOM)')
project.install.dependsOn project.mavenBom
}
}

55
buildSrc/src/main/groovy/MavenBomTask.groovy

@ -1,55 +0,0 @@ @@ -1,55 +0,0 @@
import groovy.xml.MarkupBuilder
import org.gradle.api.DefaultTask
import org.gradle.api.Project
import org.gradle.api.tasks.*
public class MavenBomTask extends DefaultTask {
Set<Project> projects = []
File bomFile
public MavenBomTask() {
this.group = "Generate"
this.description = "Generates a Maven Build of Materials (BOM). See http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies"
this.projects = project.subprojects
this.bomFile = project.file("${->project.buildDir}/maven-bom/${->project.name}-${->project.version}.txt")
}
@TaskAction
public void configureBom() {
project.configurations.archives.artifacts.clear()
bomFile.parentFile.mkdirs()
bomFile.write("Maven Build of Materials (BOM). See http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies")
project.artifacts {
// work around GRADLE-2406 by attaching text artifact
archives(bomFile)
}
project.install {
repositories.mavenInstaller {
pom.whenConfigured {
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)
}
}
}
}
}
}
}
}
}
}
}

1
buildSrc/src/main/resources/META-INF/gradle-plugins/maven-bom.properties

@ -1 +0,0 @@ @@ -1 +0,0 @@
implementation-class=MavenBomPlugin
Loading…
Cancel
Save