Plan/Plan/build.gradle

169 lines
5.7 KiB
Groovy
Raw Normal View History

// Aggregate Javadocs
buildscript {
repositories { mavenCentral() }
dependencies {
classpath 'com.netflix.nebula:gradle-aggregate-javadocs-plugin:3.0.+'
}
}
plugins {
id "com.github.johnrengelman.shadow" version "7.0.0"
id "java"
2018-12-19 18:24:33 +01:00
id "jacoco"
id "checkstyle"
id "org.sonarqube" version "3.3"
// id "net.ltgt.apt" version "0.21"
// id "net.ltgt.apt-idea" version "0.21"
}
apply plugin: 'nebula-aggregate-javadocs'
2019-12-08 10:30:53 +01:00
def determineBuildVersion = {
def buildInfo = new ByteArrayOutputStream()
exec {
commandLine 'git', 'rev-list', '--count', 'HEAD'
standardOutput = buildInfo
}
// Magic number: git rev-list --count cdb13e3b663b18e3938ad5efc60d165fa9301f6e
return Integer.parseInt(buildInfo.toString().replaceAll("[^0-9]", "")) - 3529
}
def buildVersion = determineBuildVersion()
allprojects {
wrapper.gradleVersion = "7.0.2"
group "com.djrapitops"
version "5.4-SNAPSHOT"
ext.majorVersion = '5'
ext.minorVersion = '4'
2019-12-08 10:30:53 +01:00
ext.buildVersion = buildVersion
ext.fullVersion = project.ext.majorVersion + '.' + project.ext.minorVersion + ' build ' + project.ext.buildVersion
2018-12-26 20:44:59 +01:00
2019-01-12 12:00:30 +01:00
// Fix for UTF-8 files showing with wrong encoding when compiled on Windows machines.
2020-01-24 11:22:41 +01:00
compileJava { options.encoding = "UTF-8" }
tasks.withType(JavaCompile) { options.encoding = 'UTF-8' }
javadoc { options.encoding = 'UTF-8' }
}
logger.lifecycle("Building artifact for version $fullVersion")
subprojects {
// Build plugins
apply plugin: "com.github.johnrengelman.shadow"
apply plugin: "java"
2019-02-02 09:42:29 +01:00
apply plugin: "maven-publish"
// Report plugins
apply plugin: "checkstyle"
2018-12-19 18:24:33 +01:00
apply plugin: "jacoco"
2020-03-10 21:56:44 +01:00
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
ext {
daggerVersion = "2.37"
daggerCompilerVersion = "2.37"
palVersion = "5.0.0"
bukkitVersion = "1.13.2-R0.1-SNAPSHOT"
spigotVersion = "1.13.2-R0.1-SNAPSHOT"
paperVersion = "1.13.2-R0.1-SNAPSHOT"
spongeVersion = "7.3.0"
nukkitVersion = "1.0-SNAPSHOT"
bungeeVersion = "1.16-R0.4"
velocityVersion = "3.0.0-SNAPSHOT"
redisBungeeVersion = "0.6.3"
commonsTextVersion = "1.9"
commonsCompressVersion = "1.21"
caffeineVersion = "2.9.2"
mysqlVersion = "8.0.25"
sqliteVersion = "3.36.0.1"
hikariVersion = "4.0.3"
slf4jVersion = "1.7.31"
geoIpVersion = "2.15.0"
gsonVersion = "2.8.7"
bstatsVersion = "2.2.1"
placeholderapiVersion = "2.10.10"
nkPlaceholderapiVersion = "1.4-SNAPSHOT"
}
repositories {
mavenCentral()
maven { url = "https://hub.spigotmc.org/nexus/content/repositories/snapshots/" } // Spigot
maven { url = "https://papermc.io/repo/repository/maven-public/" } // Paper
maven { url = "https://repo.spongepowered.org/repository/maven-public/" } // Sponge
maven { url = "https://oss.sonatype.org/content/repositories/snapshots" } // BungeeCord
maven { url = "https://repo.md-5.net/content/repositories/snapshots/" } // RedisBungee
maven { url = "https://repo.velocitypowered.com/snapshots/" } // Velocity
maven { url = "https://repo.opencollab.dev/maven-snapshots/" } // Nukkit snapshot
maven { url = "https://repo.opencollab.dev/maven-releases/" } // Nukkit release
maven { url = "https://repo.codemc.org/repository/maven-public" } // bStats
maven { url = "https://repo.playeranalytics.net/releases" } // Plan
}
dependencies {
// Dependency Injection used across the project
implementation "com.google.dagger:dagger:$daggerVersion"
annotationProcessor "com.google.dagger:dagger-compiler:$daggerCompilerVersion"
testAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerCompilerVersion"
// Test Tooling Dependencies
testImplementation 'org.junit.jupiter:junit-jupiter:5.7.2' // JUnit 5
testImplementation "org.mockito:mockito-core:3.11.2" // Mockito Core
testImplementation "org.mockito:mockito-junit-jupiter:3.11.2" // Mockito JUnit 5 Extension
testImplementation "org.seleniumhq.selenium:selenium-java:3.141.59" // Selenium (Browser tests)
testImplementation "com.jayway.awaitility:awaitility:1.7.0" // Awaitility (Concurrent wait conditions)
// Testing dependencies required by Plan
testImplementation "org.xerial:sqlite-jdbc:$sqliteVersion" // SQLite
testImplementation "mysql:mysql-connector-java:$mysqlVersion" // MySQL
}
2019-08-08 20:01:48 +02:00
configurations {
testArtifacts.extendsFrom testRuntimeOnly
}
// Test classes available to other modules
task testJar(type: Jar) {
archiveClassifier.set("test")
from sourceSets.test.output
}
artifacts {
testArtifacts testJar
}
2020-03-10 21:56:44 +01:00
test {
useJUnitPlatform()
testLogging {
events "passed", "failed", "skipped"
exceptionFormat "full"
}
}
checkstyle {
toolVersion "8.33"
2020-03-10 21:56:44 +01:00
getConfigDirectory().set file("$rootProject.projectDir/config/checkstyle")
}
2019-08-08 20:01:48 +02:00
jacocoTestReport {
reports {
xml.enabled true
// xml.destination file("${buildDir}/jacoco/report.xml")
2019-08-08 20:01:48 +02:00
}
}
plugins.withType(JacocoPlugin) {
tasks["test"].finalizedBy 'jacocoTestReport'
}
2018-12-19 18:24:33 +01:00
}
sonarqube {
properties {
2018-12-19 18:29:43 +01:00
property "sonar.projectName", "Player Analytics"
property "sonar.projectKey", "com.djrapitops:Plan"
property "sonar.coverage.jacoco.xmlReportPaths", "**/build/report/jacoco/test/jacocoTestReport.xml"
2018-12-19 18:24:33 +01:00
}
}