import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.gradle.api.tasks.testing.logging.TestLogEvent plugins { id("com.github.ben-manes.versions") version "0.40.0" id("com.gradle.plugin-publish") version "0.19.0" id("io.gitlab.arturbosch.detekt") version "1.19.0" id("java-gradle-plugin") id("java") id("maven-publish") id("org.gradle.kotlin.kotlin-dsl") version "2.1.7" id("org.jetbrains.kotlinx.kover") version "0.4.4" id("org.sonarqube") version "3.3" // kotlin("jvm") version "1.4.31" } version = "1.0.5" group = "net.thauvin.erik.gradle" val github = "https://github.com/ethauvin/semver-gradle" val packageName = "net.thauvin.erik.gradle.semver" repositories { mavenCentral() maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots") } } dependencies { implementation(gradleApi()) implementation(platform(kotlin("bom"))) implementation(kotlin("stdlib")) //testImplementation(gradleTestKit()) testImplementation(kotlin("test")) testImplementation(kotlin("test-junit")) } java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } tasks { withType { kotlinOptions { jvmTarget = java.targetCompatibility.toString() // Gradle 4.6 apiVersion = "1.2" } } withType { testLogging { exceptionFormat = TestExceptionFormat.FULL events = setOf(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED) } } "sonarqube" { dependsOn(koverReport) } } detekt { //toolVersion = "main-SNAPSHOT" baseline = project.rootDir.resolve("detekt-baseline.xml") } sonarqube { properties { property("sonar.projectName", "semver-gradle") property("sonar.projectKey", "ethauvin_semver-gradle") property("sonar.organization", "ethauvin-github") property("sonar.host.url", "https://sonarcloud.io") property("sonar.sourceEncoding", "UTF-8") property("sonar.coverage.jacoco.xmlReportPaths", "${project.buildDir}/reports/kover/report.xml") } } gradlePlugin { plugins { create(project.name) { id = packageName displayName = "SemVer Plugin" description = "Semantic Version Plugin for Gradle" implementationClass = "$packageName.SemverPlugin" } } } pluginBundle { website = github vcsUrl = github tags = listOf("semver", "semantic", "version", "versioning", "auto-increment", "kotlin", "java") mavenCoordinates { groupId = project.group.toString() artifactId = project.name } }