You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
147 lines
3.5 KiB
147 lines
3.5 KiB
apply plugin: 'maven' |
|
|
|
// Create a source jar for uploading |
|
task sourceJar(type: Jar) { |
|
classifier = 'sources' |
|
from sourceSets.main.java.srcDirs |
|
include '**/*.java', '**/*.aj' |
|
} |
|
|
|
artifacts { |
|
archives sourceJar |
|
} |
|
|
|
// Configuration for SpringSource s3 maven deployer |
|
configurations { |
|
deployerJars |
|
} |
|
dependencies { |
|
deployerJars "org.springframework.build.aws:org.springframework.build.aws.maven:3.0.0.RELEASE" |
|
} |
|
|
|
install { |
|
repositories.mavenInstaller { |
|
customizePom(pom, project) |
|
} |
|
} |
|
|
|
def customizePom(pom, gradleProject) { |
|
pom.whenConfigured { p -> |
|
p.dependencies.findAll{ it.scope == "optional" }.each { |
|
it.scope = "compile" |
|
it.optional = true |
|
} |
|
p.dependencies.findAll{ it.groupId == "org.springframework" }.each { |
|
it.version = null |
|
} |
|
// sort to make pom dependencies order consistent to ease comparison of older poms |
|
p.dependencies = p.dependencies.sort { dep -> |
|
"$dep.scope:$dep.optional:$dep.groupId:$dep.artifactId" |
|
} |
|
} |
|
def isWar = project.hasProperty('war') |
|
pom.project { |
|
name = gradleProject.name |
|
if(isWar) { |
|
packaging = "war" |
|
} |
|
description = gradleProject.name |
|
url = 'http://spring.io/spring-security' |
|
organization { |
|
name = 'spring.io' |
|
url = 'http://spring.io/' |
|
} |
|
licenses { |
|
license { |
|
name 'The Apache Software License, Version 2.0' |
|
url 'http://www.apache.org/licenses/LICENSE-2.0.txt' |
|
distribution 'repo' |
|
} |
|
} |
|
scm { |
|
url = 'https://github.com/spring-projects/spring-security' |
|
connection = 'scm:git:git://github.com/spring-projects/spring-security' |
|
developerConnection = 'scm:git:git://github.com/spring-projects/spring-security' |
|
} |
|
developers { |
|
developer { |
|
id = 'rwinch' |
|
name = 'Rob Winch' |
|
email = 'rwinch@gopivotal.com' |
|
} |
|
} |
|
|
|
if(!gradleProject.name.endsWith('-bom')) { |
|
dependencyManagement { |
|
dependencies { |
|
dependency { |
|
groupId 'org.springframework' |
|
artifactId 'spring-framework-bom' |
|
version project.springVersion |
|
type 'pom' |
|
scope 'import' |
|
} |
|
} |
|
} |
|
} |
|
if(isWar) { |
|
properties { |
|
'm2eclipse.wtp.contextRoot' '/' + project.war.baseName |
|
} |
|
} |
|
if(project.snapshotBuild) { |
|
repositories { |
|
repository { |
|
id 'spring-snasphot' |
|
url 'https://repo.spring.io/snapshot' |
|
} |
|
} |
|
} else if(!project.releaseBuild) { |
|
repositories { |
|
repository { |
|
id 'spring-milestone' |
|
url 'https://repo.spring.io/milestone' |
|
} |
|
} |
|
} |
|
} |
|
|
|
// http://forums.gradle.org/gradle/topics/after_upgrade_gradle_to_2_0_version_the_maven_pom_not_support_build_property |
|
pom.withXml { |
|
def plugins = asNode().appendNode('build').appendNode('plugins') |
|
plugins |
|
.appendNode('plugin') |
|
.appendNode('artifactId','maven-compiler-plugin').parent() |
|
.appendNode('configuration') |
|
.appendNode('source','1.7').parent() |
|
.appendNode('target','1.7') |
|
if(isWar) { |
|
plugins |
|
.appendNode('plugin') |
|
.appendNode('artifactId','maven-war-plugin').parent() |
|
.appendNode('version','2.3').parent() |
|
.appendNode('configuration') |
|
.appendNode('failOnMissingWebXml','false') |
|
} |
|
} |
|
} |
|
|
|
task generatePom { |
|
group = 'Build' |
|
description = 'Generates a Maven pom.xml' |
|
|
|
ext.generatedPomFileName = "pom.xml" |
|
onlyIf { install.enabled } |
|
|
|
inputs.files(fileTree(project.rootProject.rootDir).include("**/*.gradle").files) |
|
inputs.files(new File(project.rootProject.rootDir, Project.GRADLE_PROPERTIES)) |
|
outputs.files(generatedPomFileName) |
|
|
|
doLast() { |
|
def p = pom {} |
|
customizePom(p, project) |
|
p.writeTo(generatedPomFileName) |
|
} |
|
} |
|
|
|
build.dependsOn generatePom
|
|
|