-group = 'net.pterodactylus'
-version = '80'
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
-buildscript {
- ext.kotlinVersion = '1.3.50'
- repositories {
- mavenCentral()
- }
- dependencies {
- classpath group: 'info.solidsoft.gradle.pitest', name: 'gradle-pitest-plugin', version: '1.4.0'
- classpath group: 'org.jetbrains.kotlin', name: 'kotlin-gradle-plugin', version: kotlinVersion
- classpath group: 'org.jetbrains.kotlin', name: 'kotlin-noarg', version: kotlinVersion
- }
+plugins {
+ id 'org.jetbrains.kotlin.jvm' version '1.7.10'
+ id 'org.jetbrains.kotlin.plugin.noarg' version '1.7.10'
+ id 'info.solidsoft.pitest' version '1.7.4'
+ id 'jacoco'
}
+group = 'net.pterodactylus'
+version = '82'
+
repositories {
mavenCentral()
maven { url "https://maven.pterodactylus.net/" }
options.encoding = 'UTF-8'
}
-apply plugin: 'kotlin'
+tasks.withType(KotlinCompile) {
+ kotlinOptions {
+ jvmTarget = "1.8"
+ freeCompilerArgs += '-Xjvm-default=enable'
+ }
+}
configurations {
provided {
configurations.default.exclude group: dep.group, module: dep.name
}
}
- compile.extendsFrom provided
+ implementation.extendsFrom provided
}
-
+
dependencies {
provided group: 'org.freenetproject', name: 'fred', version: '0.7.5.1475'
provided group: 'org.freenetproject', name: 'freenet-ext', version: '29'
provided group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.54'
- compile group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib-jdk8'
- compile group: 'org.jetbrains.kotlinx', name: 'kotlinx-coroutines-core', version: '1.3.0-RC'
+ implementation group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib-jdk8'
+ implementation group: 'org.jetbrains.kotlinx', name: 'kotlinx-coroutines-core', version: '1.3.0-RC'
+
+ implementation group: 'net.pterodactylus', name: 'utils', version: '0.13.1'
+ implementation group: 'com.google.inject', name: 'guice', version: '4.2.2'
+ implementation group: 'com.google.guava', name: 'guava', version: '27.0.1-jre'
+ implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.1'
+ implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.9.1'
+ implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.2'
+ implementation group: 'org.jsoup', name: 'jsoup', version: '1.10.2'
+ implementation group: 'io.dropwizard.metrics', name: 'metrics-core', version: '4.1.0'
+ implementation group: 'javax.activation', name: 'javax.activation-api', version: '1.2.0'
+
+ testImplementation group: 'org.jetbrains.kotlin', name: 'kotlin-test-junit'
+ testImplementation group: 'junit', name: 'junit', version: '4.11'
+ testImplementation group: 'org.mockito', name: 'mockito-core', version: '3.12.4'
+ testImplementation group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3'
+}
- compile group: 'net.pterodactylus', name: 'utils', version: '0.12.4'
- compile group: 'com.google.inject', name: 'guice', version: '4.2.2'
- compile group: 'com.google.guava', name: 'guava', version: '27.0.1-android'
- compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.1'
- compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.9.1'
- compile group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.2'
- compile group: 'org.jsoup', name: 'jsoup', version: '1.10.2'
- compile group: 'io.dropwizard.metrics', name: 'metrics-core', version: '4.1.0'
- compile group: 'javax.activation', name: 'javax.activation-api', version: '1.2.0'
+apply from: 'version.gradle'
- testCompile group: 'org.jetbrains.kotlin', name: 'kotlin-test-junit'
- testCompile group: 'junit', name: 'junit', version: '4.11'
- testCompile group: 'org.mockito', name: 'mockito-core', version: '2.28.2'
- testCompile group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3'
+task parallelTest(type: Test) {
+ maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
+ useJUnit {
+ excludeCategories 'net.pterodactylus.sone.test.NotParallel'
+ }
}
-apply from: 'version.gradle'
+task notParallelTest(type: Test) {
+ maxParallelForks = 1
+ useJUnit {
+ includeCategories 'net.pterodactylus.sone.test.NotParallel'
+ }
+ dependsOn parallelTest
+}
test {
- maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
+ exclude '**'
+ dependsOn parallelTest, notParallelTest
}
task fatJar(type: Jar) {
- archiveName = project.name.toLowerCase() + '-jar-with-dependencies.jar'
- from { (configurations.runtime - configurations.provided).collect { it.isDirectory() ? it : zipTree(it) } }
+ archiveFileName = project.name.toLowerCase() + '-jar-with-dependencies.jar'
+ from { (configurations.runtimeClasspath - configurations.provided).collect { it.isDirectory() ? it : zipTree(it) } }
+ setDuplicatesStrategy(DuplicatesStrategy.INCLUDE)
manifest {
attributes('Plugin-Main-Class': 'net.pterodactylus.sone.main.SonePlugin')
}
failOnError = false
}
-apply plugin: 'jacoco'
-
jacoco {
- toolVersion = '0.8.4'
+ toolVersion = '0.8.8'
}
-jacocoTestReport.dependsOn test
-
-apply plugin: 'info.solidsoft.pitest'
+jacocoTestReport {
+ executionData(layout.buildDirectory.getAsFileTree().matching {
+ include "jacoco/*.exec"
+ })
+ dependsOn test
+}
pitest {
+ pitestVersion = '1.7.4'
outputFormats = ['HTML', 'XML']
timestampedReports = false
timeoutFactor = 3.0
}
-apply plugin: 'findbugs'
-
-findbugs {
- ignoreFailures = true
-}
-
apply plugin: 'idea'
task countLinesMain(type: Exec) {
dependsOn tasks.countLinesTest
}
-apply plugin: 'kotlin-noarg'
-
noArg {
annotation('net.pterodactylus.sone.main.NoArg')
}