import org.ajoberstar.grgit.Grgit buildscript { repositories { mavenCentral() maven { url = "https://oss.sonatype.org/content/repositories/snapshots/" } jcenter() } configurations.all { resolutionStrategy { force 'commons-io:commons-io:2.4' } } dependencies { classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.4' classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:4.8.1' } } plugins { id "org.ajoberstar.grgit" version "3.1.1" id "com.github.johnrengelman.shadow" version "5.1.0" } println """ ******************************************* You are building FastAsyncWorldEdit! If you encounter trouble: 1) Read COMPILING.md if you haven't yet 2) Try running 'build' in a separate Gradle run 3) Use gradlew and not gradle 4) If you still need help, ask on Discord! https://discord.gg/ngZCzbU Output files will be in /target ******************************************* """ allprojects { group = 'com.boydti.fawe' def rootVersion = "1.13" def revision = "" def buildNumber = "" def date = "" ext { git = Grgit.open(dir: '.git') date = git.head().getDate().format("yy.MM.dd") revision = "-${git.head().abbreviatedId}" parents = git.head().parentIds; if (project.hasProperty('buildnumber')) { buildNumber = "$buildnumber" } else { index = -2109; // Offset to match CI for (; parents != null && !parents.isEmpty(); index++) { parents = git.getResolve().toCommit(parents.get(0)).getParentIds() } buildNumber = "${index}" } } version = String.format("%s.%s", rootVersion, buildNumber) } description = rootProject.name subprojects { repositories { mavenCentral() maven { url "http://maven.sk89q.com/repo/" } maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } maven { url "http://repo.maven.apache.org/maven2" } // Fawe maven { url "https://mvnrepository.com/artifact/" } maven { url "http://repo.dmulloy2.net/content/groups/public/" } maven { url "https://repo.destroystokyo.com/repository/maven-public//" } maven { url "http://ci.athion.net/job/PlotSquared-Breaking/ws/mvn/" } maven { url "https://libraries.minecraft.net" } mavenLocal() maven { url "http://empcraft.com/maven2" } maven { url "https://hub.spigotmc.org/nexus/content/groups/public/" } maven { url "http://ci.frostcast.net/plugin/repository/everything" } maven { url "http://maven.sk89q.com/artifactory/repo" } maven { url "http://repo.spongepowered.org/maven" } maven { url "http://dl.bintray.com/tastybento/maven-repo" } maven { url "http://ci.emc.gs/nexus/content/groups/aikar/" } ivy { url 'https://ci.athion.net/job' layout 'pattern', { artifact '/[organisation]/[revision]/artifact/[module].[ext]' } } } configurations.all { resolutionStrategy { cacheChangingModulesFor 5, 'minutes' } } } configure(['worldedit-core', 'worldedit-bukkit', 'favs'].collect { project("$it") }) { apply plugin: 'java' apply plugin: 'maven' // apply plugin: 'checkstyle' apply plugin: 'com.github.johnrengelman.shadow' // apply plugin: 'com.jfrog.artifactory' // Enable this requires putting license header files in many, many FAWE files // apply plugin: 'net.minecrell.licenser' sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 // checkstyle.configFile = new File(rootProject.projectDir, "config/checkstyle/checkstyle.xml") // checkstyle.toolVersion = '7.6.1' clean.doFirst { delete "../target" } if (JavaVersion.current().isJava8Compatible()) { // Java 8 turns on doclint which we fail tasks.withType(Javadoc) { options.addStringOption('Xdoclint:none', '-quiet') } } if (name == "worldedit-core" || name == "worldedit-bukkit") { task sourcesJar(type: Jar, dependsOn: classes) { classifier = 'sources' from sourceSets.main.allSource } artifacts { archives sourcesJar } build.dependsOn(sourcesJar) } // build.dependsOn(checkstyleMain) // build.dependsOn(checkstyleTest) // build.dependsOn(javadocJar) // // artifactoryPublish { // publishConfigs('archives') // } dependencies { compileOnly 'org.jetbrains:annotations:17.0.0' } } configure(['bukkit'].collect { project(":worldedit-$it") }) { shadowJar { getArchiveClassifier().set('dist') dependencies { include(project(":worldedit-libs:core")) include(project(":worldedit-libs:${project.name.replace("worldedit-", "")}")) include(project(":worldedit-core")) include(dependency('com.github.luben:zstd-jni:1.1.1')) include(dependency('co.aikar:fastutil-lite:1.0')) } exclude 'GradleStart**' exclude '.cache' exclude 'LICENSE*' } // Enable this requires putting license header files in many, many FAWE files //license { // header = rootProject.file("HEADER.txt") // include '**/*.java' //} } 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 } } }