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" } } } }