diff --git a/build.gradle b/build.gradle index f35fe502dda..57c343d04e4 100644 --- a/build.gradle +++ b/build.gradle @@ -853,6 +853,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 c21e2d0827c..c357abef991 100644 --- a/settings.gradle +++ b/settings.gradle @@ -23,6 +23,7 @@ include "spring-webmvc" include "spring-webmvc-portlet" include "spring-webmvc-tiles3" include "spring-websocket" +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 00000000000..9671db5d5f4 --- /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.