Skip to content

Commit

Permalink
♻️ Refactor buildSrc (#498)
Browse files Browse the repository at this point in the history
* ♻️ Refactor buildSrc

* 🎨 Refactor buildSrc

* 🎨 Refactor buildSrc

* 💚 Fix build

* 💚 Fix build
  • Loading branch information
devkanro authored Mar 22, 2023
1 parent 710a098 commit 2dbb4b9
Show file tree
Hide file tree
Showing 49 changed files with 243 additions and 232 deletions.
6 changes: 1 addition & 5 deletions bom/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
plugins {
`java-platform`
id("com.netflix.nebula.maven-publish")
sisyphus
`sisyphus-bom`
}

group = "com.bybutter.sisyphus"
description = "Sisyphus Project (Bill of Materials)"


dependencies {
constraints {
rootProject.subprojects {
Expand Down
40 changes: 39 additions & 1 deletion buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
plugins {
idea
`java-library`
`java-gradle-plugin`
`kotlin-dsl`
id("idea")
}

repositories {
Expand All @@ -22,3 +23,40 @@ dependencies {
implementation(libs.gradle.kotlin.allopen)
implementation(libs.gradle.plugin.publish)
}

gradlePlugin {
plugins {
create("sisyphus-java") {
id = "sisyphus.java"
implementationClass = "JavaProjectPlugin"
}
create("sisyphus-kotlin") {
id = "sisyphus.kotlin"
implementationClass = "KotlinProjectPlugin"
}
create("sisyphus-library") {
id = "sisyphus.library"
implementationClass = "LibraryProjectPlugin"
}
create("sisyphus-middleware") {
id = "sisyphus.middleware"
implementationClass = "MiddlewareProjectPlugin"
}
create("sisyphus-starter") {
id = "sisyphus.starter"
implementationClass = "StarterProjectPlugin"
}
create("sisyphus-tools") {
id = "sisyphus.tools"
implementationClass = "ToolProjectPlugin"
}
create("sisyphus-plugin") {
id = "sisyphus.plugin"
implementationClass = "GradlePluginProjectPlugin"
}
create("sisyphus-bom") {
id = "sisyphus.bom"
implementationClass = "BomProjectPlugin"
}
}
}
17 changes: 17 additions & 0 deletions buildSrc/src/main/kotlin/BomProjectPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import com.bybutter.sisyphus.project.gradle.SisyphusProjectPlugin
import nebula.plugin.publishing.maven.MavenPublishPlugin
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.plugins.JavaPlatformPlugin
import org.gradle.plugins.ide.idea.IdeaPlugin

class BomProjectPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.plugins.apply(IdeaPlugin::class.java)
target.plugins.apply(JavaPlatformPlugin::class.java)
target.plugins.apply(SisyphusProjectPlugin::class.java)
target.plugins.apply(MavenPublishPlugin::class.java)

target.group = "com.bybutter.sisyphus"
}
}
10 changes: 10 additions & 0 deletions buildSrc/src/main/kotlin/GradlePluginProjectPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import org.gradle.api.Plugin
import org.gradle.api.Project

class GradlePluginProjectPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.plugins.apply("com.gradle.plugin-publish")
target.plugins.apply("org.gradle.java-gradle-plugin")
target.plugins.apply(ToolProjectPlugin::class.java)
}
}
31 changes: 31 additions & 0 deletions buildSrc/src/main/kotlin/JavaProjectPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import com.bybutter.sisyphus.project.gradle.SisyphusProjectPlugin
import org.gradle.api.JavaVersion
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.plugins.JavaLibraryPlugin
import org.gradle.api.tasks.compile.JavaCompile
import org.gradle.api.tasks.testing.Test
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.withType
import org.gradle.plugins.ide.idea.IdeaPlugin

class JavaProjectPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.plugins.apply(IdeaPlugin::class.java)
target.plugins.apply(JavaLibraryPlugin::class.java)
target.plugins.apply(SisyphusProjectPlugin::class.java)

target.tasks.withType<JavaCompile> {
sourceCompatibility = JavaVersion.VERSION_1_8.majorVersion
targetCompatibility = JavaVersion.VERSION_1_8.majorVersion
}

target.dependencies {
add("api", "org.jetbrains.kotlin:kotlin-stdlib-jdk8")
}

target.tasks.withType<Test> {
useJUnitPlatform()
}
}
}
29 changes: 29 additions & 0 deletions buildSrc/src/main/kotlin/KotlinProjectPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.withType
import org.jetbrains.kotlin.allopen.gradle.SpringGradleSubplugin
import org.jetbrains.kotlin.gradle.plugin.KotlinBasePlugin
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformJvmPlugin
import org.jetbrains.kotlin.gradle.plugin.KotlinPluginWrapper
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jlleitschuh.gradle.ktlint.KtlintPlugin

class KotlinProjectPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.plugins.apply(JavaProjectPlugin::class.java)
target.plugins.apply(KtlintPlugin::class.java)
target.plugins.apply("kotlin")
target.plugins.apply("kotlin-spring")

target.dependencies {
add("api", "org.jetbrains.kotlin:kotlin-stdlib-jdk8")
}

target.tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
kotlinOptions.freeCompilerArgs += "-opt-in=kotlin.RequiresOptIn"
}
}
}

10 changes: 10 additions & 0 deletions buildSrc/src/main/kotlin/LibraryProjectPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import org.gradle.api.Plugin
import org.gradle.api.Project

class LibraryProjectPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.plugins.apply(KotlinProjectPlugin::class.java)

target.group = "com.bybutter.sisyphus"
}
}
10 changes: 10 additions & 0 deletions buildSrc/src/main/kotlin/MiddlewareProjectPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import org.gradle.api.Plugin
import org.gradle.api.Project

class MiddlewareProjectPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.plugins.apply(KotlinProjectPlugin::class.java)

target.group = "com.bybutter.sisyphus.middleware"
}
}
10 changes: 10 additions & 0 deletions buildSrc/src/main/kotlin/StarterProjectPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import org.gradle.api.Plugin
import org.gradle.api.Project

class StarterProjectPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.plugins.apply(KotlinProjectPlugin::class.java)

target.group = "com.bybutter.sisyphus.starter"
}
}
10 changes: 10 additions & 0 deletions buildSrc/src/main/kotlin/ToolProjectPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import org.gradle.api.Plugin
import org.gradle.api.Project

class ToolProjectPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.plugins.apply(KotlinProjectPlugin::class.java)

target.group = "com.bybutter.sisyphus.tools"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package org.gradle.kotlin.dsl

inline val org.gradle.plugin.use.PluginDependenciesSpec.`sisyphus-java`: org.gradle.plugin.use.PluginDependencySpec
get() = id("sisyphus.java")

inline val org.gradle.plugin.use.PluginDependenciesSpec.`sisyphus-kotlin`: org.gradle.plugin.use.PluginDependencySpec
get() = id("sisyphus.kotlin")

inline val org.gradle.plugin.use.PluginDependenciesSpec.`sisyphus-library`: org.gradle.plugin.use.PluginDependencySpec
get() = id("sisyphus.library")

inline val org.gradle.plugin.use.PluginDependenciesSpec.`sisyphus-middleware`: org.gradle.plugin.use.PluginDependencySpec
get() = id("sisyphus.middleware")

inline val org.gradle.plugin.use.PluginDependenciesSpec.`sisyphus-starter`: org.gradle.plugin.use.PluginDependencySpec
get() = id("sisyphus.starter")

inline val org.gradle.plugin.use.PluginDependenciesSpec.`sisyphus-tools`: org.gradle.plugin.use.PluginDependencySpec
get() = id("sisyphus.tools")

inline val org.gradle.plugin.use.PluginDependenciesSpec.`sisyphus-gradle-plugin`: org.gradle.plugin.use.PluginDependencySpec
get() = id("sisyphus.plugin")

inline val org.gradle.plugin.use.PluginDependenciesSpec.`sisyphus-bom`: org.gradle.plugin.use.PluginDependencySpec
get() = id("sisyphus.bom")

inline val org.gradle.plugin.use.PluginDependenciesSpec.`sisyphus-protobuf`: org.gradle.plugin.use.PluginDependencySpec
get() = id("com.bybutter.sisyphus.protobuf")
5 changes: 0 additions & 5 deletions buildSrc/src/main/kotlin/plugin.kt

This file was deleted.

100 changes: 0 additions & 100 deletions buildSrc/src/main/kotlin/project.kt

This file was deleted.

5 changes: 3 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -146,5 +146,6 @@ swagger = { module = "io.swagger.core.v3:swagger-core", version.ref = "swagger"
kotlinpoet = { module = "com.squareup:kotlinpoet", version.ref = "kotlinpoet" }

[plugins]
nebula-maven = { id = "com.netflix.nebula.maven-publish", version.ref = "nebula-publishing" }
nebula-contacts = { id = "com.netflix.nebula.contacts", version.ref = "nebula-contacts" }
nebula-maven = { id = "com.netflix.nebula.maven-publish" }
nebula-contacts = { id = "com.netflix.nebula.contacts" }
sisyphus-project = { id = "com.bybutter.sisyphus.project"}
5 changes: 2 additions & 3 deletions lib/sisyphus-common/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
lib

plugins {
`java-library`
`sisyphus-library`
}

description = "Common lib of Sisyphus Project"

dependencies {
implementation(libs.kotlin.reflect)
compileOnly(libs.spring.boot)
compileOnly(libs.kotlin.coroutines)
}
7 changes: 3 additions & 4 deletions lib/sisyphus-dsl/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
lib

plugins {
antlr
`java-library`
protobuf
`sisyphus-library`
`sisyphus-protobuf`
}

description = "Utils and toolkit for building gRPC service easier"
Expand All @@ -12,6 +10,7 @@ dependencies {
api(libs.antlr4.runtime)
api(projects.lib.sisyphusGrpc)
implementation(projects.lib.sisyphusCommon)
implementation(libs.kotlin.reflect)

antlr(libs.antlr4)

Expand Down
4 changes: 1 addition & 3 deletions lib/sisyphus-dto/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
lib

plugins {
`java-library`
`sisyphus-library`
}

description = "Easy to create struct in Sisyphus"
Expand Down
Loading

0 comments on commit 2dbb4b9

Please sign in to comment.