From 596973242491829e5fedc6edf412ef67c4aff073 Mon Sep 17 00:00:00 2001 From: Graeme Rocher Date: Fri, 6 Jun 2014 11:35:30 +0200 Subject: [PATCH] package POM files into GRAILS_HOME/lib --- .../grails/gradle/GrailsBuildPlugin.groovy | 10 +++++++-- gradle/assemble.gradle | 21 +++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/groovy/org/grails/gradle/GrailsBuildPlugin.groovy b/buildSrc/src/main/groovy/org/grails/gradle/GrailsBuildPlugin.groovy index 890baecd6d3..6939e7dce6c 100644 --- a/buildSrc/src/main/groovy/org/grails/gradle/GrailsBuildPlugin.groovy +++ b/buildSrc/src/main/groovy/org/grails/gradle/GrailsBuildPlugin.groovy @@ -19,6 +19,7 @@ class GrailsBuildPlugin implements Plugin { // of the dependencies in the given configuration(s) project.ext { sourcesFor = { configurations -> classifiedDependencies(project, configurations, "sources") } + pomFor = { configurations -> classifiedDependencies(project, configurations, "pom") } javadocFor = { configurations -> classifiedDependencies(project, configurations, "javadoc") } } } @@ -53,8 +54,13 @@ class GrailsBuildPlugin implements Plugin { dependency.artifact { artifact -> artifact.name = dependency.name artifact.type = targetClassifier - artifact.extension = 'jar' - artifact.classifier = targetClassifier + if('pom' == targetClassifier) { + artifact.extension = 'pom' + } + else { + artifact.extension = 'jar' + artifact.classifier = targetClassifier + } } dependency } diff --git a/gradle/assemble.gradle b/gradle/assemble.gradle index 7df35c589fd..f1259811ebf 100644 --- a/gradle/assemble.gradle +++ b/gradle/assemble.gradle @@ -56,6 +56,8 @@ task configurePopulateDependencies << { libsConfigurations.each { configuration -> def sourceArtifacts = sourcesFor(configuration).resolvedConfiguration.lenientConfiguration.getArtifacts(Specs.satisfyAll()).groupBy { it.moduleVersion.id } def javadocArtifacts = javadocFor(configuration).resolvedConfiguration.lenientConfiguration.getArtifacts(Specs.satisfyAll()).groupBy { it.moduleVersion.id } + def pomArtifacts = pomFor(configuration).resolvedConfiguration.lenientConfiguration.getArtifacts(Specs.satisfyAll()).groupBy { it.moduleVersion.id } + for (artifact in configuration.resolvedConfiguration.resolvedArtifacts) { if (artifact in seen) continue seen << artifact @@ -73,6 +75,25 @@ task configurePopulateDependencies << { } } + populateDependencies.into("$dependency.group/$dependency.name/jars") { + from artifact.file // this will trigger the actual download if necessary + def sourceJar = sourceArtifacts[dependency] + if (sourceJar) { + from sourceJar.file + } + def javadocJar = javadocArtifacts[dependency] + if (javadocJar) { + from javadocJar.file + } + } + + populateDependencies.into("$dependency.group/$dependency.name") { + def pomFile = pomArtifacts[dependency] + if(pomFile) { + from pomFile.file + } + } + populateDependencies.from ("${metadata}/${dependency.group}/${dependency.name}/${dependency.version}") { include "**/*ivy.xml" eachFile { it.path = "$dependency.group/$dependency.name/ivy-${dependency.version}.xml" }