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.plugins.quality.CheckstyleExtension import org.gradle.api.tasks.bundling.Jar import org.gradle.api.tasks.javadoc.Javadoc import org.gradle.api.tasks.testing.Test import org.gradle.external.javadoc.CoreJavadocOptions 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 = "eclipse") apply(plugin = "idea") apply(plugin = "maven") //apply(plugin = "checkstyle") apply(plugin = "com.github.johnrengelman.shadow") //apply(plugin = "com.jfrog.artifactory") ext["internalVersion"] = "$version;${rootProject.ext["gitCommitHash"]}" configure { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } // configure { // configFile = rootProject.file("config/checkstyle/checkstyle.xml") // toolVersion = "7.6.1" // } tasks.withType().configureEach { useJUnitPlatform() } dependencies { "compileOnly"("org.jetbrains:annotations:17.0.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().configureEach { (options as CoreJavadocOptions).addStringOption("Xdoclint:none", "-quiet") } tasks.register("javadocJar") { dependsOn("javadoc") archiveClassifier.set("javadoc") from(tasks.getByName("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("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") { // 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*") minimize() } }