113 lines
3.3 KiB
Groovy
113 lines
3.3 KiB
Groovy
apply plugin: 'org.springframework.build.compile'
|
|
apply plugin: 'org.springframework.build.optional-dependencies'
|
|
apply plugin: 'org.springframework.build.test-sources'
|
|
apply plugin: "maven"
|
|
|
|
jar {
|
|
manifest.attributes["Implementation-Title"] = project.name
|
|
manifest.attributes["Implementation-Version"] = project.version
|
|
manifest.attributes["Automatic-Module-Name"] = project.name.replace('-', '.') // for Jigsaw
|
|
manifest.attributes["Created-By"] =
|
|
"${System.getProperty("java.version")} (${System.getProperty("java.specification.vendor")})"
|
|
|
|
from("${rootDir}/src/docs/dist") {
|
|
include "license.txt"
|
|
include "notice.txt"
|
|
into "META-INF"
|
|
expand(copyright: new Date().format("yyyy"), version: project.version)
|
|
}
|
|
}
|
|
|
|
javadoc {
|
|
description = "Generates project-level javadoc for use in -javadoc jar"
|
|
|
|
options.encoding = "UTF-8"
|
|
options.memberLevel = JavadocMemberLevel.PROTECTED
|
|
options.author = true
|
|
options.header = project.name
|
|
options.use = true
|
|
options.links(project.ext.javadocLinks)
|
|
options.addStringOption("Xdoclint:none", "-quiet")
|
|
|
|
// Suppress warnings due to cross-module @see and @link references.
|
|
// Note that global 'api' task does display all warnings.
|
|
logging.captureStandardError LogLevel.INFO
|
|
logging.captureStandardOutput LogLevel.INFO // suppress "## warnings" message
|
|
}
|
|
|
|
task sourcesJar(type: Jar, dependsOn: classes) {
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
archiveClassifier.set("sources")
|
|
from sourceSets.main.allSource
|
|
// Don't include or exclude anything explicitly by default. See SPR-12085.
|
|
}
|
|
|
|
task javadocJar(type: Jar) {
|
|
archiveClassifier.set("javadoc")
|
|
from javadoc
|
|
}
|
|
|
|
artifacts {
|
|
archives sourcesJar
|
|
archives javadocJar
|
|
}
|
|
|
|
install {
|
|
repositories.mavenInstaller {
|
|
customizePom(pom, project)
|
|
}
|
|
}
|
|
|
|
def customizePom(pom, gradleProject) {
|
|
pom.whenConfigured { generatedPom ->
|
|
// eliminate test-scoped dependencies (no need in maven central poms)
|
|
generatedPom.dependencies.removeAll { dep ->
|
|
dep.scope == "test"
|
|
}
|
|
|
|
// sort to make pom dependencies order consistent to ease comparison of older poms
|
|
generatedPom.dependencies = generatedPom.dependencies.sort { dep ->
|
|
"$dep.scope:$dep.groupId:$dep.artifactId"
|
|
}
|
|
|
|
def managedVersions = dependencyManagement.managedVersions
|
|
generatedPom.dependencies.findAll{dep -> !dep.version }.each { dep ->
|
|
dep.version = managedVersions["${dep.groupId}:${dep.artifactId}"]
|
|
}
|
|
|
|
// add all items necessary for maven central publication
|
|
generatedPom.project {
|
|
name = gradleProject.description
|
|
description = gradleProject.description
|
|
url = "https://github.com/spring-projects/spring-framework"
|
|
organization {
|
|
name = "Spring IO"
|
|
url = "https://projects.spring.io/spring-framework"
|
|
}
|
|
licenses {
|
|
license {
|
|
name "Apache License, Version 2.0"
|
|
url "https://www.apache.org/licenses/LICENSE-2.0"
|
|
distribution "repo"
|
|
}
|
|
}
|
|
scm {
|
|
url = "https://github.com/spring-projects/spring-framework"
|
|
connection = "scm:git:git://github.com/spring-projects/spring-framework"
|
|
developerConnection = "scm:git:git://github.com/spring-projects/spring-framework"
|
|
}
|
|
developers {
|
|
developer {
|
|
id = "jhoeller"
|
|
name = "Juergen Hoeller"
|
|
email = "jhoeller@pivotal.io"
|
|
}
|
|
}
|
|
issueManagement {
|
|
system = "GitHub"
|
|
url = "https://github.com/spring-projects/spring-framework/issues"
|
|
}
|
|
}
|
|
}
|
|
}
|