From 75c13317933bf8bbda016224db1c82893eaabf7c Mon Sep 17 00:00:00 2001 From: Swordsteel Date: Tue, 9 Sep 2025 09:46:31 +0200 Subject: [PATCH] add common, common-build, common-ktlint, common-detekt, and common-project --- README.md | 42 ++++++++++++++++++- build.gradle.kts | 7 ++++ ...ugin.common-plugin.common-build.gradle.kts | 17 ++++++++ ...gin.common-plugin.common-detekt.gradle.kts | 26 ++++++++++++ ...gin.common-plugin.common-ktlint.gradle.kts | 19 +++++++++ ...in.common-plugin.common-project.gradle.kts | 30 +++++++++++++ ...ulz.plugin.common-plugin.common.gradle.kts | 20 +++++++++ 7 files changed, 159 insertions(+), 2 deletions(-) create mode 100644 src/main/kotlin/ltd.lulz.plugin.common-plugin.common-build.gradle.kts create mode 100644 src/main/kotlin/ltd.lulz.plugin.common-plugin.common-detekt.gradle.kts create mode 100644 src/main/kotlin/ltd.lulz.plugin.common-plugin.common-ktlint.gradle.kts create mode 100644 src/main/kotlin/ltd.lulz.plugin.common-plugin.common-project.gradle.kts create mode 100644 src/main/kotlin/ltd.lulz.plugin.common-plugin.common.gradle.kts diff --git a/README.md b/README.md index c6c3ee8..147a5b2 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,52 @@ * [Common Plugin.](#common-plugin) - * [Plugins](#plugins) + * [Plugins.](#plugins) + * [Common.](#common) + * [Plugin Common.](#plugin-common) + * [Plugin Common Build.](#plugin-common-build) + * [Plugin Common Detekt.](#plugin-common-detekt) + * [Plugin Common Ktlint.](#plugin-common-ktlint) + * [Plugin Common Project.](#plugin-common-project) * [Publish gradle plugin locally.](#publish-gradle-plugin-locally) * [Releasing gradle plugin.](#releasing-gradle-plugin) * [Publish gradle plugin to repository.](#publish-gradle-plugin-to-repository) * [Global gradle properties.](#global-gradle-properties) -## Plugins +## Plugins. + +### Common. + +#### Plugin Common. + +id `ltd.lulz.plugin.common-plugin.common` + +Set core Java and Kotlin settings and overweight project version with git version. + +#### Plugin Common Build. + +id `ltd.lulz.plugin.common-plugin.common-build` + +Display name and version, add `buildInfo` to `build` task. + +#### Plugin Common Detekt. + +id `ltd.lulz.plugin.common-plugin.common-detekt` + +Detect is a code smell analysis for your Kotlin projects. + +#### Plugin Common Ktlint. + +id `ltd.lulz.plugin.common-plugin.common-ktlint` + +Ktlint enforces consistent code style and formatting across Kotlin codebases. + +#### Plugin Common Project. + +id `ltd.lulz.plugin.common-plugin.common-project` + +Display project, Gradle, and Java information. ## Publish gradle plugin locally. diff --git a/build.gradle.kts b/build.gradle.kts index 1240318..6b6456b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -10,6 +10,13 @@ plugins { `maven-publish` } +dependencies { + implementation(aa.plugin.core) + implementation(aa.plugin.detekt) + implementation(aa.plugin.ktlint) + implementation(aa.plugin.kotlin) +} + description = "Lulz Common Plugin" group = "ltd.lulz.plugin" version = git.version() diff --git a/src/main/kotlin/ltd.lulz.plugin.common-plugin.common-build.gradle.kts b/src/main/kotlin/ltd.lulz.plugin.common-plugin.common-build.gradle.kts new file mode 100644 index 0000000..8deb15f --- /dev/null +++ b/src/main/kotlin/ltd.lulz.plugin.common-plugin.common-build.gradle.kts @@ -0,0 +1,17 @@ +plugins { + id("ltd.lulz.plugin.core-plugin") +} + +tasks { + named("build") { + dependsOn("buildInfo") + } + register("buildInfo") { + group = "lulz" + description = "Prints the project name and version" + + doLast { + println(info.nameVersion) + } + } +} diff --git a/src/main/kotlin/ltd.lulz.plugin.common-plugin.common-detekt.gradle.kts b/src/main/kotlin/ltd.lulz.plugin.common-plugin.common-detekt.gradle.kts new file mode 100644 index 0000000..2a9a61c --- /dev/null +++ b/src/main/kotlin/ltd.lulz.plugin.common-plugin.common-detekt.gradle.kts @@ -0,0 +1,26 @@ +import io.gitlab.arturbosch.detekt.Detekt +import io.gitlab.arturbosch.detekt.extensions.DetektExtension.Companion.DEFAULT_SRC_DIR_KOTLIN +import io.gitlab.arturbosch.detekt.extensions.DetektExtension.Companion.DEFAULT_TEST_SRC_DIR_KOTLIN + +plugins { + id("io.gitlab.arturbosch.detekt") +} + +detekt { + buildUponDefaultConfig = true + basePath = projectDir.path + source.from( + DEFAULT_SRC_DIR_KOTLIN, + DEFAULT_TEST_SRC_DIR_KOTLIN, + ) +} + +tasks.withType { + reports { + html.required = false + md.required = false + sarif.required = true + txt.required = false + xml.required = false + } +} diff --git a/src/main/kotlin/ltd.lulz.plugin.common-plugin.common-ktlint.gradle.kts b/src/main/kotlin/ltd.lulz.plugin.common-plugin.common-ktlint.gradle.kts new file mode 100644 index 0000000..1a341ed --- /dev/null +++ b/src/main/kotlin/ltd.lulz.plugin.common-plugin.common-ktlint.gradle.kts @@ -0,0 +1,19 @@ +import org.jlleitschuh.gradle.ktlint.reporter.ReporterType.SARIF + +plugins { + id("org.jlleitschuh.gradle.ktlint") +} + +ktlint { + verbose = true + filter { + exclude("**/generated/**") + include("**/kotlin/**") + } + kotlinScriptAdditionalPaths { + include(fileTree("scripts/*")) + } + reporters { + reporter(SARIF) + } +} diff --git a/src/main/kotlin/ltd.lulz.plugin.common-plugin.common-project.gradle.kts b/src/main/kotlin/ltd.lulz.plugin.common-plugin.common-project.gradle.kts new file mode 100644 index 0000000..da82023 --- /dev/null +++ b/src/main/kotlin/ltd.lulz.plugin.common-plugin.common-project.gradle.kts @@ -0,0 +1,30 @@ +import org.gradle.kotlin.dsl.kotlin + +plugins { + id("ltd.lulz.plugin.core-plugin") + kotlin("jvm") +} + +tasks.register("projectInfo") { + group = "lulz" + description = "Prints project information" + + val groupValue = project.group.toString() + val nameValue = project.name + val versionValue = project.version.toString() + val descriptionValue = project.description ?: "N/A" + + doLast { + println() + println("UTC Time: ${info.utcTimestamp}") + println() + println("Project group: $groupValue") + println("Project name: $nameValue\"") + println("Project version: $versionValue") + println("Project description: $descriptionValue") + println() + println("Gradle version: ${GradleVersion.current().version}") + println("Java JVM version: ${JavaVersion.current()}") + println("Java toolchain version: ${java.toolchain.languageVersion.orNull ?: "N/A"}") + } +} diff --git a/src/main/kotlin/ltd.lulz.plugin.common-plugin.common.gradle.kts b/src/main/kotlin/ltd.lulz.plugin.common-plugin.common.gradle.kts new file mode 100644 index 0000000..87e88c8 --- /dev/null +++ b/src/main/kotlin/ltd.lulz.plugin.common-plugin.common.gradle.kts @@ -0,0 +1,20 @@ +plugins { + id("ltd.lulz.plugin.common-plugin.common-build") + id("ltd.lulz.plugin.common-plugin.common-detekt") + id("ltd.lulz.plugin.common-plugin.common-ktlint") + id("ltd.lulz.plugin.common-plugin.common-project") + + id("ltd.lulz.plugin.core-plugin") + + kotlin("jvm") +} + +java.toolchain.languageVersion = JavaLanguageVersion.of(17) + +kotlin.compilerOptions.freeCompilerArgs.addAll("-Xjsr305=strict") + +tasks.withType { + useJUnitPlatform() +} + +version = git.version()