Permalink
Browse files

Updated the build to use a separate maven pom file alteration script …

…to make the resulting pom maven central-compliant.
  • Loading branch information...
1 parent 851ae50 commit 316ac5d9424435f6c09c4baa4f3109f840f93cf1 Jon Brisbin committed with jbrisbin Oct 15, 2012
Showing with 61 additions and 0 deletions.
  1. +1 −0 build.gradle
  2. +60 −0 maven.gradle
View
@@ -24,6 +24,7 @@ allprojects {
configure(subprojects) { subproject ->
apply plugin: "java"
apply plugin: "groovy"
+ apply from: "${rootProject.projectDir}/maven.gradle"
configurations {
compile.extendsFrom providedCompile
View
@@ -0,0 +1,60 @@
+apply plugin: 'maven'
+
+ext.optionalDeps = []
+ext.providedDeps = []
+
+ext.optional = { optionalDeps << it }
+ext.provided = { providedDeps << it }
+
+install {
+ repositories.mavenInstaller {
+ customizePom(pom, project)
+ }
+}
+
+def customizePom(pom, gradleProject) {
+ pom.whenConfigured { generatedPom ->
+ // respect 'optional' and 'provided' dependencies
+ gradleProject.optionalDeps.each { dep ->
+ generatedPom.dependencies.find { it.artifactId == dep.name }?.optional = true
+ }
+ gradleProject.providedDeps.each { dep ->
+ generatedPom.dependencies.find { it.artifactId == dep.name }?.scope = 'provided'
+ }
+
+ // eliminate test-scoped dependencies (no need in maven central poms)
+ generatedPom.dependencies.removeAll { dep ->
+ dep.scope == 'test'
+ }
+
+ // add all items necessary for maven central publication
+ generatedPom.project {
+ name = gradleProject.description
+ description = gradleProject.description
+ url = 'http://github.com/SpringSource/spring-data-rest'
+ organization {
+ name = 'SpringSource'
+ url = 'http://www.springsource.org/spring-data/rest'
+ }
+ licenses {
+ license {
+ name 'The Apache Software License, Version 2.0'
+ url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+ distribution 'repo'
+ }
+ }
+ scm {
+ url = 'http://github.com/SpringSource/spring-data-rest'
+ connection = 'scm:git:git://github.com/SpringSource/spring-data-rest'
+ developerConnection = 'scm:git:git://github.com/SpringSource/spring-data-rest'
+ }
+ developers {
+ developer {
+ id = 'jbrisbin'
+ name = 'Jon Brisbin'
+ email = 'jbrisbin@vmware.com'
+ }
+ }
+ }
+ }
+}

0 comments on commit 316ac5d

Please sign in to comment.