1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
|
import java.util.regex.Pattern
compileJava {
options.warnings = true
options.deprecation = true
options.compilerArgs += ["-Xlint:all,-options,-processing"]
}
compileTestJava {
options.warnings = true
options.deprecation = true
options.compilerArgs += ["-Xlint:all,-options,-processing"]
}
// Gradle cannot process all version strings such that JavaVersion.current() fails.
def raw = System.getProperty("java.version")
def current
if (!raw.startsWith("1.") && raw.contains(".")) {
current = JavaVersion.toVersion(raw.substring(0, raw.indexOf('.')))
} else {
current = JavaVersion.toVersion(raw)
}
def java19Version
try {
java19Version = JavaVersion.valueOf("VERSION_19");
} catch (Exception ignored) {
java19Version = null
}
def sourceVersion = System.getProperty("net.bytebuddy.gradle.version.source")
def source
if (sourceVersion != null) {
source = JavaVersion.toVersion(sourceVersion)
} else if (java19Version != null && current > java19Version) {
source = JavaVersion.VERSION_1_8
} else if (current > JavaVersion.VERSION_1_9) {
source = JavaVersion.VERSION_1_7
} else if (current > JavaVersion.VERSION_1_8) {
source = JavaVersion.VERSION_1_6
} else {
source = JavaVersion.VERSION_1_5
}
def targetVersion = System.getProperty("net.bytebuddy.gradle.version.target")
def target
if (targetVersion != null) {
target = JavaVersion.toVersion(targetVersion)
} else if (java19Version != null && current > java19Version) {
target = JavaVersion.VERSION_1_8
} else if (current > JavaVersion.VERSION_1_9) {
target = JavaVersion.VERSION_1_7
} else if (current > JavaVersion.VERSION_1_8) {
target = JavaVersion.VERSION_1_6
} else {
target = JavaVersion.VERSION_1_5
}
if (gradle.gradleVersion.startsWith("2.")) { // support legacy version
sourceCompatibility = source
targetCompatibility = target
} else {
java {
sourceCompatibility = source
targetCompatibility = target
}
}
logger.info("Compiling class files from version ${source} to ${target}.")
// Without the extras property, creating a javadoc artifact is not necessary.
if (Boolean.getBoolean('net.bytebuddy.misc.extras')) {
if (gradle.gradleVersion.startsWith("2.")) { // support legacy version
task copyJavadoc(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
javadoc {
options {
linksOffline "https://javadoc.io/doc/net.bytebuddy/byte-buddy/${pom.parent.version.text().toString()}", '../byte-buddy/target/apidocs'
}
}
} else {
task copyJavadoc(type: Jar, dependsOn: javadoc) {
archiveClassifier.set('javadoc')
from javadoc.destinationDir
}
javadoc {
options {
links 'https://docs.oracle.com/javase/1.5.0/docs/api'
links 'https://docs.gradle.org/7.5/javadoc'
linksOffline "https://javadoc.io/doc/net.bytebuddy/byte-buddy/${pom.parent.version.text().toString()}", '../byte-buddy/target/apidocs'
}
}
}
} else {
javadoc {
enabled = false
}
task copyJavadoc {
logger.debug('javadoc jar is only generated if net.bytebuddy.misc.extras is set to true')
}
if (!gradle.gradleVersion.startsWith("2.")) { // support legacy version
gradle.taskGraph.whenReady {
tasks.getByPath('javadocJar').enabled = false
tasks.getByPath('sourcesJar').enabled = false
}
}
}
test {
enabled = !Boolean.getBoolean('net.bytebuddy.test.disabled')
systemProperty('net.bytebuddy.test.version', version)
systemProperty('net.bytebuddy.test.integration', Boolean.getBoolean('net.bytebuddy.test.integration'))
}
compileTestJava {
enabled = !Boolean.getBoolean('net.bytebuddy.test.disabled')
}
processTestResources {
enabled = !Boolean.getBoolean('net.bytebuddy.test.disabled')
}
task copyLicense(type: Copy) {
from '..'
include 'LICENSE', 'NOTICE'
into "$buildDir/resources/main/META-INF"
def pattern = Pattern.compile('\\$\\{([a-zA-Z0-9\\-._]+)}')
filter { String line ->
def matcher = pattern.matcher(line)
def buffer = new StringBuffer()
while (matcher.find()) {
def property = matcher.group(1)
String resolved
if (property.startsWith("project.")) {
resolved = outerPom.getProperty(property.substring("project.".length()))
} else {
resolved = outerPom.properties.getProperty(property)
}
if (resolved == null) {
throw new GradleException("Could not resolve property $property")
}
logger.debug("Resolved $property to $resolved")
matcher.appendReplacement(buffer, resolved)
}
matcher.appendTail(buffer).toString()
}
}
compileJava.dependsOn copyLicense
compileTestJava.dependsOn copyLicense
|