111 lines
3.4 KiB
Groovy
111 lines
3.4 KiB
Groovy
apply plugin: 'java-library'
|
|
apply plugin: 'org.springframework.build.conventions'
|
|
apply plugin: 'org.springframework.build.optional-dependencies'
|
|
// Uncomment the following for Shadow support in the jmhJar block.
|
|
// Currently commented out due to ZipException: archive is not a ZIP archive
|
|
// apply plugin: 'com.github.johnrengelman.shadow'
|
|
apply plugin: 'me.champeau.jmh'
|
|
apply from: "$rootDir/gradle/publications.gradle"
|
|
|
|
dependencies {
|
|
jmh 'org.openjdk.jmh:jmh-core:1.36'
|
|
jmh 'org.openjdk.jmh:jmh-generator-annprocess:1.36'
|
|
jmh 'net.sf.jopt-simple:jopt-simple'
|
|
}
|
|
|
|
pluginManager.withPlugin("kotlin") {
|
|
apply plugin: "org.jetbrains.dokka"
|
|
apply from: "${rootDir}/gradle/docs-dokka.gradle"
|
|
}
|
|
|
|
jmh {
|
|
duplicateClassesStrategy = DuplicatesStrategy.EXCLUDE
|
|
}
|
|
|
|
tasks.findByName("processJmhResources").configure {
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
}
|
|
|
|
jmhJar {
|
|
// Uncomment the following for Shadow's Transformer support.
|
|
// mergeServiceFiles()
|
|
// append('META-INF/spring.handlers')
|
|
// append('META-INF/spring.schemas')
|
|
// append('META-INF/spring.tooling')
|
|
exclude 'LICENSE'
|
|
exclude 'THIRD-PARTY'
|
|
exclude 'META-INF/license.txt'
|
|
exclude 'META-INF/notice.txt'
|
|
exclude 'META-INF/DEPENDENCIES'
|
|
exclude 'META-INF/LICENSE*'
|
|
exclude 'META-INF/NOTICE'
|
|
exclude 'META-INF/THIRD-PARTY'
|
|
}
|
|
|
|
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}/framework-docs/src/docs/dist") {
|
|
include "license.txt"
|
|
include "notice.txt"
|
|
into "META-INF"
|
|
expand(copyright: new Date().format("yyyy"), version: project.version)
|
|
}
|
|
}
|
|
|
|
normalization {
|
|
runtimeClasspath {
|
|
ignore "META-INF/MANIFEST.MF"
|
|
}
|
|
}
|
|
|
|
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)
|
|
// Check for syntax during linting. 'none' doesn't seem to work in suppressing
|
|
// all linting warnings all the time (see/link references most notably).
|
|
options.addStringOption("Xdoclint:syntax", "-quiet")
|
|
|
|
// Suppress warnings due to cross-module @see and @link references.
|
|
// Note that global 'api' task does display all warnings, and
|
|
// checks for 'reference' on top of 'syntax'.
|
|
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
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
mavenJava(MavenPublication) {
|
|
from components.java
|
|
artifact sourcesJar
|
|
artifact javadocJar
|
|
}
|
|
}
|
|
}
|
|
|
|
// Disable publication of test fixture artifacts.
|
|
components.java.withVariantsFromConfiguration(configurations.testFixturesApiElements) { skip() }
|
|
components.java.withVariantsFromConfiguration(configurations.testFixturesRuntimeElements) { skip() }
|