From 22ece06b39d8b22c4e4b7723583beb30b3476afb Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Wed, 27 Nov 2013 15:32:04 -0800 Subject: [PATCH] Add a 'bill of materials' project for Maven users Add 'spring-framework-bom' meta-project that contains the other projects in a dependencyManagement section. Issue: SPR-11138 --- build.gradle | 35 +++++++++++++++++++ settings.gradle | 1 + spring-framework-bom/spring-framework-bom.txt | 2 ++ 3 files changed, 38 insertions(+) create mode 100644 spring-framework-bom/spring-framework-bom.txt diff --git a/build.gradle b/build.gradle index 481bf9ea42..b751cb9dd5 100644 --- a/build.gradle +++ b/build.gradle @@ -787,6 +787,41 @@ project("spring-aspects") { } } +project("spring-framework-bom") { + description = "Spring Framework (Bill of Materials)" + + configurations.archives.artifacts.clear() + artifacts { + // work around GRADLE-2406 by attaching text artifact + archives(file("spring-framework-bom.txt")) + } + + install { + repositories.mavenInstaller { + pom.whenConfigured { + packaging = "pom" + withXml { + asNode().children().last() + { + delegate.dependencyManagement { + delegate.dependencies { + parent.subprojects.sort { "$it.name" }.each { p -> + if (p.hasProperty("merge") && p.merge.into == null && p != project) { + delegate.dependency { + delegate.groupId(p.group) + delegate.artifactId(p.name) + delegate.version(p.version) + } + } + } + } + } + } + } + } + } + } +} + configure(rootProject) { description = "Spring Framework" diff --git a/settings.gradle b/settings.gradle index 8c99e5a179..5a93a86fec 100644 --- a/settings.gradle +++ b/settings.gradle @@ -22,6 +22,7 @@ include "spring-web" include "spring-webmvc" include "spring-webmvc-portlet" include "spring-webmvc-tiles3" +include "spring-framework-bom" // Exposes gradle buildSrc for IDE support include "buildSrc" diff --git a/spring-framework-bom/spring-framework-bom.txt b/spring-framework-bom/spring-framework-bom.txt new file mode 100644 index 0000000000..9671db5d5f --- /dev/null +++ b/spring-framework-bom/spring-framework-bom.txt @@ -0,0 +1,2 @@ +This meta-project is used to generate a bill-of-materials POM that contains the other +projects in a dependencyManagement section.