MavenBomPlugin.groovy 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package io.spring.gradle.convention
  2. import org.gradle.api.Plugin
  3. import org.gradle.api.Project
  4. import org.gradle.api.plugins.JavaPlugin
  5. import org.gradle.api.plugins.MavenPlugin
  6. import org.gradle.plugins.signing.SigningPlugin
  7. import org.sonarqube.gradle.SonarQubePlugin
  8. public class MavenBomPlugin implements Plugin<Project> {
  9. static String MAVEN_BOM_TASK_NAME = "mavenBom"
  10. public void apply(Project project) {
  11. project.configurations {
  12. archives
  13. }
  14. project.plugins.apply('io.spring.convention.artifactory')
  15. project.plugins.apply('io.spring.convention.maven')
  16. project.plugins.apply(MavenPlugin)
  17. project.plugins.apply(SigningPlugin)
  18. project.plugins.apply("io.spring.convention.ossrh")
  19. project.group = project.rootProject.group
  20. project.task(MAVEN_BOM_TASK_NAME, type: MavenBomTask, group: 'Generate', description: 'Configures the pom as a Maven Build of Materials (BOM)')
  21. project.install.dependsOn project.mavenBom
  22. project.tasks.uploadArchives.dependsOn project.mavenBom
  23. project.tasks.artifactoryPublish.dependsOn project.mavenBom
  24. project.plugins.withType(SonarQubePlugin) {
  25. project.sonarqube.skipProject = true
  26. }
  27. project.rootProject.allprojects.each { p ->
  28. p.plugins.withType(io.spring.gradle.convention.SpringMavenPlugin) {
  29. if (!project.name.equals(p.name)) {
  30. project.mavenBom.projects.add(p)
  31. }
  32. }
  33. }
  34. def deployArtifacts = project.task("deployArtifacts")
  35. deployArtifacts.group = 'Deploy tasks'
  36. deployArtifacts.description = "Deploys the artifacts to either Artifactor or Maven Central"
  37. if(Utils.isRelease(project)) {
  38. deployArtifacts.dependsOn project.tasks.uploadArchives
  39. } else {
  40. deployArtifacts.dependsOn project.tasks.artifactoryPublish
  41. }
  42. project.artifacts {
  43. archives project.mavenBom.bomFile
  44. }
  45. }
  46. }