Mirror von
https://github.com/IntellectualSites/FastAsyncWorldEdit.git
synchronisiert 2024-11-05 11:00:05 +01:00
2e73746abe
Shrinks the jar size since we no longer must bundle the Kotlin library. The downside is that some classes grew in size compared to their Kotlin versions. Many contributors didn't care for Kotlin either.
133 Zeilen
4.3 KiB
Kotlin
133 Zeilen
4.3 KiB
Kotlin
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
|
import org.gradle.api.JavaVersion
|
|
import org.gradle.api.Project
|
|
import org.gradle.api.plugins.JavaPluginConvention
|
|
import org.gradle.api.tasks.bundling.Jar
|
|
import org.gradle.api.tasks.compile.JavaCompile
|
|
import org.gradle.api.tasks.javadoc.Javadoc
|
|
import org.gradle.api.tasks.testing.Test
|
|
import org.gradle.external.javadoc.StandardJavadocDocletOptions
|
|
import org.gradle.kotlin.dsl.apply
|
|
import org.gradle.kotlin.dsl.configure
|
|
import org.gradle.kotlin.dsl.dependencies
|
|
import org.gradle.kotlin.dsl.get
|
|
import org.gradle.kotlin.dsl.getByName
|
|
import org.gradle.kotlin.dsl.named
|
|
import org.gradle.kotlin.dsl.register
|
|
import org.gradle.kotlin.dsl.withType
|
|
|
|
fun Project.applyPlatformAndCoreConfiguration() {
|
|
applyCommonConfiguration()
|
|
apply(plugin = "java")
|
|
apply(plugin = "idea")
|
|
apply(plugin = "maven")
|
|
// apply(plugin = "checkstyle")
|
|
apply(plugin = "com.github.johnrengelman.shadow")
|
|
|
|
ext["internalVersion"] = "$version;${rootProject.ext["gitCommitHash"]}"
|
|
|
|
configure<JavaPluginConvention> {
|
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
|
targetCompatibility = JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
tasks
|
|
.withType<JavaCompile>()
|
|
.matching { it.name == "compileJava" || it.name == "compileTestJava" }
|
|
.configureEach {
|
|
val disabledLint = listOf(
|
|
"processing", "path", "fallthrough", "serial"
|
|
)
|
|
//options.compilerArgs.addAll(listOf("-Xlint:all") + disabledLint.map { "-Xlint:-$it" })
|
|
options.isDeprecation = false
|
|
options.encoding = "UTF-8"
|
|
}
|
|
|
|
// configure<CheckstyleExtension> {
|
|
// configFile = rootProject.file("config/checkstyle/checkstyle.xml")
|
|
// toolVersion = "8.34"
|
|
// }
|
|
|
|
tasks.withType<Test>().configureEach {
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
dependencies {
|
|
"compileOnly"("org.jetbrains:annotations:20.1.0")
|
|
"testImplementation"("org.junit.jupiter:junit-jupiter-api:${Versions.JUNIT}")
|
|
"testImplementation"("org.junit.jupiter:junit-jupiter-params:${Versions.JUNIT}")
|
|
"testImplementation"("org.mockito:mockito-core:${Versions.MOCKITO}")
|
|
"testImplementation"("org.mockito:mockito-junit-jupiter:${Versions.MOCKITO}")
|
|
"testRuntime"("org.junit.jupiter:junit-jupiter-engine:${Versions.JUNIT}")
|
|
}
|
|
|
|
// Java 8 turns on doclint which we fail
|
|
tasks.withType<Javadoc>().configureEach {
|
|
(options as StandardJavadocDocletOptions).apply {
|
|
addStringOption("Xdoclint:none", "-quiet")
|
|
tags(
|
|
"apiNote:a:API Note:",
|
|
"implSpec:a:Implementation Requirements:",
|
|
"implNote:a:Implementation Note:"
|
|
)
|
|
}
|
|
}
|
|
|
|
tasks.register<Jar>("javadocJar") {
|
|
dependsOn("javadoc")
|
|
archiveClassifier.set("javadoc")
|
|
from(tasks.getByName<Javadoc>("javadoc").destinationDir)
|
|
}
|
|
|
|
tasks.named("assemble").configure {
|
|
dependsOn("javadocJar")
|
|
}
|
|
|
|
artifacts {
|
|
add("archives", tasks.named("jar"))
|
|
add("archives", tasks.named("javadocJar"))
|
|
}
|
|
|
|
if (name == "worldedit-core" || name == "worldedit-bukkit") {
|
|
tasks.register<Jar>("sourcesJar") {
|
|
dependsOn("classes")
|
|
archiveClassifier.set("sources")
|
|
from(sourceSets["main"].allSource)
|
|
}
|
|
|
|
artifacts {
|
|
add("archives", tasks.named("sourcesJar"))
|
|
}
|
|
tasks.named("assemble").configure {
|
|
dependsOn("sourcesJar")
|
|
}
|
|
}
|
|
|
|
// tasks.named("check").configure {
|
|
// dependsOn("checkstyleMain", "checkstyleTest")
|
|
// }
|
|
|
|
}
|
|
|
|
fun Project.applyShadowConfiguration() {
|
|
tasks.named<ShadowJar>("shadowJar") {
|
|
// archiveClassifier.set("dist")
|
|
dependencies {
|
|
include(project(":worldedit-libs:core"))
|
|
include(project(":worldedit-libs:${project.name.replace("worldedit-", "")}"))
|
|
include(project(":worldedit-core"))
|
|
}
|
|
archiveFileName.set("FastAsyncWorldEdit-${project.version}.jar")
|
|
exclude("GradleStart**")
|
|
exclude(".cache")
|
|
exclude("LICENSE*")
|
|
exclude("META-INF/maven/**")
|
|
minimize()
|
|
}
|
|
}
|
|
|
|
val CLASSPATH = listOf("truezip", "truevfs", "js")
|
|
.map { "$it.jar" }
|
|
.flatMap { listOf(it, "WorldEdit/$it") }
|
|
.joinToString(separator = " ")
|