import org.ajoberstar.grgit.Grgit buildscript { repositories { mavenCentral() maven { url = "https://oss.sonatype.org/content/repositories/snapshots/" } jcenter() } dependencies { classpath("com.github.jengelman.gradle.plugins:shadow:5.0.0") classpath 'gradle.plugin.nl.javadude.gradle.plugins:license-gradle-plugin:0.14.0' classpath 'com.bmuschko:gradle-nexus-plugin:2.3.1' } configurations.all { resolutionStrategy { force("org.ow2.asm:asm:8.0.1") force("org.jetbrains:annotations:20.0.0") } } } plugins { id "maven-publish" id "org.ajoberstar.grgit" version "4.0.2" } group = "com.plotsquared" ext { git = Grgit.open(dir: new File(rootDir.toString() + "/.git")) } def ver = "5.13.3" def versuffix = "" ext { if (project.hasProperty("versionsuffix")) { versuffix = "-$versionsuffix" } } version = ver + versuffix description = rootProject.name allprojects { apply(plugin: 'com.github.hierynomus.license') apply(plugin: 'com.bmuschko.nexus') gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xmaxerrs" << "1000" } } license { header rootProject.file('HEADER') mapping 'java', 'SLASHSTAR_STYLE' ext.year = 2020 includes(["**/*.java","**/*.js"]) } nexus { sign = false repositoryUrl = 'https://mvn.intellectualsites.com/content/repositories/releases/' snapshotRepositoryUrl = 'https://mvn.intellectualsites.com/content/repositories/snapshots/' } } subprojects { apply(plugin: "java") apply(plugin: "maven") apply(plugin: "eclipse") apply(plugin: "idea") apply(plugin: "com.github.johnrengelman.shadow") group = "com.plotsquared" clean.doFirst { delete("../target") } javadoc.options.encoding = 'UTF-8' dependencies { compile group: 'org.json', name: 'json', version: '20200518' implementation("com.sk89q.worldedit:worldedit-core:7.0.0") { exclude(module: "bukkit-classloader-check") exclude(module: "mockito-core") exclude(module: "dummypermscompat") } implementation("net.kyori:text-api:3.0.2") implementation("net.kyori:text-serializer-gson:3.0.2") implementation("net.kyori:text-serializer-legacy:3.0.2") implementation("net.kyori:text-serializer-plain:3.0.2") implementation("com.google.guava:guava:21.0") { because("Minecraft uses Guava 21 as of 1.13") } compileOnly("org.jetbrains:annotations:19.0.0") compileClasspath("org.projectlombok:lombok:1.18.12") testCompileOnly("org.projectlombok:lombok:1.18.12") annotationProcessor("org.projectlombok:lombok:1.18.8") testAnnotationProcessor("org.projectlombok:lombok:1.18.8") testImplementation("junit:junit:4.13") } configurations.all { resolutionStrategy { force("junit:junit:4.12") force("com.google.guava:guava:21.0") force("org.jetbrains:annotations:20.0.0") force("com.google.code.findbugs:jsr305:3.0.2") } } repositories { mavenCentral() maven { url = "https://maven.enginehub.org/repo/" } maven { url = "https://repo.maven.apache.org/maven2" } maven { url = "https://jitpack.io" } } shadowJar { dependencies { include(dependency("org.json:json:20200518")) include(dependency("net.kyori:text-api:3.0.2")) } relocate("io.papermc.lib", "com.plotsquared.bukkit.paperlib") relocate("org.json", "com.plotsquared.json") { exclude "org/json/simple/**" } archiveFileName = "${project.name}-${parent.version}.jar" destinationDirectory = file "../target" } version = rootProject.version } task aggregatedJavadocs(type: Javadoc, description: "Generate javadocs from all child projects as if it was a single project", group: "Documentation") { destinationDir = file("./docs/javadoc") title = "$project.name $version API" options.author true options.links "http://docs.spring.io/spring/docs/4.3.x/javadoc-api/", "http://docs.oracle.com/javase/8/docs/api/", "http://docs.spring.io/spring-ws/docs/2.3.0.RELEASE/api/", "http://docs.spring.io/spring-security/site/docs/4.0.4.RELEASE/apidocs/" options.addStringOption("Xdoclint:none", "-quiet") delete("./docs") subprojects.each { proj -> proj.tasks.withType(Javadoc).each { javadocTask -> source += javadocTask.source classpath += javadocTask.classpath excludes += javadocTask.excludes includes += javadocTask.includes } } }