mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2024-06-26 12:31:45 +00: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 lines
4.3 KiB
Kotlin
133 lines
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 = " ")
|