PlotSquared/build.gradle
2019-05-02 20:51:52 +02:00

107 lines
3.3 KiB
Groovy

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'
}
configurations.all {
resolutionStrategy {
force 'org.ow2.asm:asm:7.1'
}
}
}
plugins {
id 'maven-publish'
id "org.ajoberstar.grgit" version "3.1.1"
}
group = 'com.github.intellectualsites.plotsquared'
def rootVersion = "4"
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 = -2042; // 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%s%s", rootVersion, date, revision, buildNumber)
version = String.format("%s.%s", rootVersion, buildNumber)
description = rootProject.name
subprojects {
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'com.github.johnrengelman.shadow'
group = 'com.github.intellectualsites.plotsquared'
clean.doFirst {
delete "../target"
}
dependencies {
implementation('com.sk89q.worldedit:worldedit-core:7.0.0-SNAPSHOT') {
exclude(module: 'bukkit-classloader-check')
exclude(module: 'mockito-core')
exclude(module: 'dummypermscompat')
}
//Minecraft uses Guava 21 as of 1.13.
compile 'com.google.guava:guava:21.0'
compileOnly 'org.jetbrains:annotations:17.0.0'
compile("org.projectlombok:lombok:1.18.6")
compileOnly("org.projectlombok:lombok:1.18.6")
testCompileOnly("org.projectlombok:lombok:1.18.6")
annotationProcessor("org.projectlombok:lombok:1.18.6")
testAnnotationProcessor("org.projectlombok:lombok:1.18.6")
testImplementation "junit:junit:4.12"
}
repositories {
mavenCentral()
maven { url "http://maven.sk89q.com/repo/" }
maven { url "http://repo.maven.apache.org/maven2" }
maven { url 'https://jitpack.io' }
}
}
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
}
}
}