Updated the build to use a separate maven pom file alteration script to make the resulting pom maven central-compliant.
This commit is contained in:
@@ -24,6 +24,7 @@ allprojects {
|
||||
configure(subprojects) { subproject ->
|
||||
apply plugin: "java"
|
||||
apply plugin: "groovy"
|
||||
apply from: "${rootProject.projectDir}/maven.gradle"
|
||||
|
||||
configurations {
|
||||
compile.extendsFrom providedCompile
|
||||
|
||||
60
maven.gradle
Normal file
60
maven.gradle
Normal file
@@ -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'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user