From 92ff0eabd9104a2b5e12d56c8ca0e5279d301097 Mon Sep 17 00:00:00 2001 From: Hanbin Lee Date: Fri, 4 Nov 2022 02:38:09 +0900 Subject: [PATCH 1/4] =?UTF-8?q?[#21]=20feat:=20buildSrc=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - gradle 설정 중 plugin 이름, 버전 관리용 object class 적용 --- build.gradle.kts | 16 +++++----------- buildSrc/build.gradle.kts | 7 +++++++ buildSrc/src/main/kotlin/Plugins.kt | 15 +++++++++++++++ 3 files changed, 27 insertions(+), 11 deletions(-) create mode 100644 buildSrc/build.gradle.kts create mode 100644 buildSrc/src/main/kotlin/Plugins.kt diff --git a/build.gradle.kts b/build.gradle.kts index 2bb7774..7f6184a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,17 +1,11 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -buildscript { - repositories { - mavenCentral() - } -} - plugins { - id("org.springframework.boot") version "2.7.0" - id("io.spring.dependency-management") version "1.0.11.RELEASE" - kotlin("jvm") version "1.6.21" - kotlin("plugin.spring") version "1.6.21" apply false // TODO: apply false what? - kotlin("plugin.jpa") version "1.6.21" apply false + id(Plugins.SPRING_BOOT) version Plugins.SPRING_BOOT_VERSION + id(Plugins.SPRING_DEPENDENCY_MANAGEMENT) version Plugins.SPRING_DEPENDENCY_MANAGEMENT_VERSION + kotlin(Plugins.Kotlin.JVM) version Plugins.Kotlin.VERSION + kotlin(Plugins.Kotlin.SPRING) version Plugins.Kotlin.VERSION apply false // TODO: apply false what? + kotlin(Plugins.Kotlin.JPA) version Plugins.Kotlin.VERSION apply false } java.sourceCompatibility = JavaVersion.VERSION_17 diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 0000000..f155244 --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,7 @@ +repositories { + mavenCentral() +} + +plugins { + `kotlin-dsl` +} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/Plugins.kt b/buildSrc/src/main/kotlin/Plugins.kt new file mode 100644 index 0000000..fd4b523 --- /dev/null +++ b/buildSrc/src/main/kotlin/Plugins.kt @@ -0,0 +1,15 @@ +object Plugins { + const val SPRING_BOOT_VERSION = "2.7.0" + const val SPRING_BOOT = "org.springframework.boot" + + const val SPRING_DEPENDENCY_MANAGEMENT_VERSION = "1.0.11.RELEASE" + const val SPRING_DEPENDENCY_MANAGEMENT = "io.spring.dependency-management" + + object Kotlin { + const val VERSION = "1.6.21" + + const val JVM = "jvm" + const val SPRING = "plugin.spring" + const val JPA = "plugin.jpa" + } +} \ No newline at end of file From 7263ee28a7432646d6dca6a8db40d817b426ad0e Mon Sep 17 00:00:00 2001 From: beaniejoy Date: Sat, 5 Nov 2022 00:16:31 +0900 Subject: [PATCH 2/4] =?UTF-8?q?[#21]=20feat:=20buildSrc=EB=A5=BC=20?= =?UTF-8?q?=ED=86=B5=ED=95=9C=20plugins=20=EC=83=81=EC=88=98=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - plugins 부분 상수화 진행중 --- build.gradle.kts | 28 ++++++++++++++-------------- buildSrc/src/main/kotlin/Plugins.kt | 20 ++++++++++++++------ 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 7f6184a..010a2f9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,11 +1,11 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - id(Plugins.SPRING_BOOT) version Plugins.SPRING_BOOT_VERSION - id(Plugins.SPRING_DEPENDENCY_MANAGEMENT) version Plugins.SPRING_DEPENDENCY_MANAGEMENT_VERSION + id(Plugins.Spring.BOOT) version Plugins.Spring.BOOT_VERSION + id(Plugins.Spring.DEPENDENCY_MANAGEMENT) version Plugins.Spring.DEPENDENCY_MANAGEMENT_VERSION kotlin(Plugins.Kotlin.JVM) version Plugins.Kotlin.VERSION - kotlin(Plugins.Kotlin.SPRING) version Plugins.Kotlin.VERSION apply false // TODO: apply false what? - kotlin(Plugins.Kotlin.JPA) version Plugins.Kotlin.VERSION apply false + kotlin(Plugins.Kotlin.PLUGIN_SPRING) version Plugins.Kotlin.VERSION apply false // TODO: apply false what? + kotlin(Plugins.Kotlin.PLUGIN_JPA) version Plugins.Kotlin.VERSION apply false } java.sourceCompatibility = JavaVersion.VERSION_17 @@ -20,15 +20,15 @@ allprojects { } subprojects { - apply(plugin = "java") + apply(plugin = Plugins.JAVA) - apply(plugin = "io.spring.dependency-management") - apply(plugin = "org.springframework.boot") - apply(plugin = "org.jetbrains.kotlin.plugin.spring") + apply(plugin = Plugins.Spring.DEPENDENCY_MANAGEMENT) + apply(plugin = Plugins.Spring.BOOT) + apply(plugin = "org.jetbrains.kotlin.plugin.spring") // TODO: 알아보기 - apply(plugin = "kotlin") - apply(plugin = "kotlin-spring") - apply(plugin = "kotlin-jpa") + apply(plugin = Plugins.Kotlin.KOTLIN) + apply(plugin = Plugins.Kotlin.KOTLIN_SPRING) + apply(plugin = Plugins.Kotlin.KOTLIN_JPA) repositories { mavenCentral() @@ -43,9 +43,9 @@ subprojects { dependencies { // Spring Boot Project - implementation("org.springframework.boot:spring-boot-starter-data-jpa") - implementation("org.springframework.boot:spring-boot-starter-web") - implementation("org.springframework.boot:spring-boot-starter-validation") + implementation("${Plugins.Spring.BOOT}:spring-boot-starter-data-jpa") + implementation("${Plugins.Spring.BOOT}:spring-boot-starter-web") + implementation("${Plugins.Spring.BOOT}:spring-boot-starter-validation") implementation("org.springframework.boot:spring-boot-starter-security") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") developmentOnly("org.springframework.boot:spring-boot-devtools") diff --git a/buildSrc/src/main/kotlin/Plugins.kt b/buildSrc/src/main/kotlin/Plugins.kt index fd4b523..9a413a4 100644 --- a/buildSrc/src/main/kotlin/Plugins.kt +++ b/buildSrc/src/main/kotlin/Plugins.kt @@ -1,15 +1,23 @@ object Plugins { - const val SPRING_BOOT_VERSION = "2.7.0" - const val SPRING_BOOT = "org.springframework.boot" + object Spring { + const val BOOT_VERSION = "2.7.0" + const val BOOT = "org.springframework.boot" - const val SPRING_DEPENDENCY_MANAGEMENT_VERSION = "1.0.11.RELEASE" - const val SPRING_DEPENDENCY_MANAGEMENT = "io.spring.dependency-management" + const val DEPENDENCY_MANAGEMENT_VERSION = "1.0.11.RELEASE" + const val DEPENDENCY_MANAGEMENT = "io.spring.dependency-management" + } + + const val JAVA = "java" object Kotlin { + const val KOTLIN = "kotlin" + const val KOTLIN_SPRING = "kotlin-spring" + const val KOTLIN_JPA = "kotlin-jpa" + const val VERSION = "1.6.21" const val JVM = "jvm" - const val SPRING = "plugin.spring" - const val JPA = "plugin.jpa" + const val PLUGIN_SPRING = "plugin.spring" + const val PLUGIN_JPA = "plugin.jpa" } } \ No newline at end of file From 1cc8eeb0e4676c2f94d27bc32528504aba271dec Mon Sep 17 00:00:00 2001 From: Hanbin Lee Date: Sun, 6 Nov 2022 01:35:04 +0900 Subject: [PATCH 3/4] =?UTF-8?q?[#21]=20modify:=20build=20gradle=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EB=82=B4=EC=9A=A9=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 코드 표현 수정 - 불필요한 설정 내용 제거 --- build.gradle.kts | 45 +++++++++++++++++---------------------------- 1 file changed, 17 insertions(+), 28 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 010a2f9..8705286 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,14 +1,16 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +import org.springframework.boot.gradle.tasks.bundling.BootJar plugins { - id(Plugins.Spring.BOOT) version Plugins.Spring.BOOT_VERSION - id(Plugins.Spring.DEPENDENCY_MANAGEMENT) version Plugins.Spring.DEPENDENCY_MANAGEMENT_VERSION - kotlin(Plugins.Kotlin.JVM) version Plugins.Kotlin.VERSION - kotlin(Plugins.Kotlin.PLUGIN_SPRING) version Plugins.Kotlin.VERSION apply false // TODO: apply false what? - kotlin(Plugins.Kotlin.PLUGIN_JPA) version Plugins.Kotlin.VERSION apply false + id(Plugins.Spring.BOOT).version(Plugins.Spring.BOOT_VERSION) + id(Plugins.Spring.DEPENDENCY_MANAGEMENT).version(Plugins.Spring.DEPENDENCY_MANAGEMENT_VERSION).apply(false) + kotlin(Plugins.Kotlin.JVM).version(Plugins.Kotlin.VERSION) + kotlin(Plugins.Kotlin.PLUGIN_SPRING).version(Plugins.Kotlin.VERSION).apply(false) + kotlin(Plugins.Kotlin.PLUGIN_JPA).version(Plugins.Kotlin.VERSION).apply(false) } -java.sourceCompatibility = JavaVersion.VERSION_17 +val bootJar: BootJar by tasks +bootJar.enabled = false allprojects { group = "io.beaniejoy.dongecafe" @@ -20,27 +22,16 @@ allprojects { } subprojects { - apply(plugin = Plugins.JAVA) + apply { + plugin(Plugins.JAVA) + plugin(Plugins.Spring.DEPENDENCY_MANAGEMENT) + plugin(Plugins.Spring.BOOT) - apply(plugin = Plugins.Spring.DEPENDENCY_MANAGEMENT) - apply(plugin = Plugins.Spring.BOOT) - apply(plugin = "org.jetbrains.kotlin.plugin.spring") // TODO: 알아보기 - - apply(plugin = Plugins.Kotlin.KOTLIN) - apply(plugin = Plugins.Kotlin.KOTLIN_SPRING) - apply(plugin = Plugins.Kotlin.KOTLIN_JPA) - - repositories { - mavenCentral() + plugin(Plugins.Kotlin.KOTLIN) + plugin(Plugins.Kotlin.KOTLIN_SPRING) + plugin(Plugins.Kotlin.KOTLIN_JPA) } -// configurations { -// all { -// // log4j2 적용을 위해 기존 spring boot에서 제공하는 logging exclude -// exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging' -// } -// } - dependencies { // Spring Boot Project implementation("${Plugins.Spring.BOOT}:spring-boot-starter-data-jpa") @@ -60,9 +51,6 @@ subprojects { implementation("org.flywaydb:flyway-core:7.15.0") // flyway // Logging - // log4j2 - // implementation("org.springframework.boot:spring-boot-starter-log4j2") - // testImplementation("org.springframework.boot:spring-boot-starter-log4j2") implementation("io.github.microutils:kotlin-logging:2.1.21") // Test @@ -71,9 +59,10 @@ subprojects { } tasks.withType { + println("Configuring $name in project ${project.name}...") kotlinOptions { freeCompilerArgs = listOf("-Xjsr305=strict") - jvmTarget = "17" + jvmTarget = JavaVersion.VERSION_17.toString() } } From 0691045ab075c070e4c6e641a51a4894f668aaca Mon Sep 17 00:00:00 2001 From: Hanbin Lee Date: Sun, 6 Nov 2022 02:27:39 +0900 Subject: [PATCH 4/4] =?UTF-8?q?[#21]=20modify:=20=EC=9D=98=EC=A1=B4?= =?UTF-8?q?=EC=84=B1=20=EB=B2=84=EC=A0=84=20=EA=B4=80=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - dependencies 버전 관리를 위한 관리 클래스 적용 - Version 클래스 따로 구성 --- build.gradle.kts | 38 +++++++++++++++-------------- buildSrc/build.gradle.kts | 8 +++--- buildSrc/src/main/kotlin/Plugins.kt | 25 ++++++++----------- buildSrc/src/main/kotlin/Version.kt | 14 +++++++++++ 4 files changed, 48 insertions(+), 37 deletions(-) create mode 100644 buildSrc/src/main/kotlin/Version.kt diff --git a/build.gradle.kts b/build.gradle.kts index 8705286..a54abf1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,11 +2,11 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.springframework.boot.gradle.tasks.bundling.BootJar plugins { - id(Plugins.Spring.BOOT).version(Plugins.Spring.BOOT_VERSION) - id(Plugins.Spring.DEPENDENCY_MANAGEMENT).version(Plugins.Spring.DEPENDENCY_MANAGEMENT_VERSION).apply(false) - kotlin(Plugins.Kotlin.JVM).version(Plugins.Kotlin.VERSION) - kotlin(Plugins.Kotlin.PLUGIN_SPRING).version(Plugins.Kotlin.VERSION).apply(false) - kotlin(Plugins.Kotlin.PLUGIN_JPA).version(Plugins.Kotlin.VERSION).apply(false) + id(Plugins.Spring.boot).version(Version.Spring.boot) + id(Plugins.Spring.dependencyManagement).version(Version.Spring.dependencyManagement).apply(false) + kotlin(Plugins.Kotlin.jvm).version(Version.kotlin) + kotlin(Plugins.Kotlin.pluginSpring).version(Version.kotlin).apply(false) + kotlin(Plugins.Kotlin.pluginJpa).version(Version.kotlin).apply(false) } val bootJar: BootJar by tasks @@ -14,7 +14,7 @@ bootJar.enabled = false allprojects { group = "io.beaniejoy.dongecafe" - version = "0.0.1-SNAPSHOT" + version = Version.projectVersion repositories { mavenCentral() @@ -23,20 +23,22 @@ allprojects { subprojects { apply { - plugin(Plugins.JAVA) - plugin(Plugins.Spring.DEPENDENCY_MANAGEMENT) - plugin(Plugins.Spring.BOOT) + plugin(Plugins.java) + plugin(Plugins.Spring.dependencyManagement) + plugin(Plugins.Spring.boot) - plugin(Plugins.Kotlin.KOTLIN) - plugin(Plugins.Kotlin.KOTLIN_SPRING) - plugin(Plugins.Kotlin.KOTLIN_JPA) + plugin(Plugins.Kotlin.kotlin) + plugin(Plugins.Kotlin.kotlinSpring) + plugin(Plugins.Kotlin.kotlinJpa) } + java.sourceCompatibility = JavaVersion.VERSION_17 + dependencies { // Spring Boot Project - implementation("${Plugins.Spring.BOOT}:spring-boot-starter-data-jpa") - implementation("${Plugins.Spring.BOOT}:spring-boot-starter-web") - implementation("${Plugins.Spring.BOOT}:spring-boot-starter-validation") + implementation("org.springframework.boot:spring-boot-starter-data-jpa") + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springframework.boot:spring-boot-starter-validation") implementation("org.springframework.boot:spring-boot-starter-security") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") developmentOnly("org.springframework.boot:spring-boot-devtools") @@ -48,10 +50,10 @@ subprojects { // DB runtimeOnly("mysql:mysql-connector-java") // MySQL runtimeOnly("com.h2database:h2") // H2 - implementation("org.flywaydb:flyway-core:7.15.0") // flyway + implementation("org.flywaydb:flyway-core:${Version.Deps.flywayCore}") // flyway // Logging - implementation("io.github.microutils:kotlin-logging:2.1.21") + implementation("io.github.microutils:kotlin-logging:${Version.Deps.kotlinLogging}") // Test testImplementation("org.springframework.boot:spring-boot-starter-test") @@ -59,7 +61,7 @@ subprojects { } tasks.withType { - println("Configuring $name in project ${project.name}...") + println("### Configuring $name in project ${project.name} ###") kotlinOptions { freeCompilerArgs = listOf("-Xjsr305=strict") jvmTarget = JavaVersion.VERSION_17.toString() diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index f155244..876c922 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -1,7 +1,7 @@ +plugins { + `kotlin-dsl` +} + repositories { mavenCentral() } - -plugins { - `kotlin-dsl` -} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/Plugins.kt b/buildSrc/src/main/kotlin/Plugins.kt index 9a413a4..99841fa 100644 --- a/buildSrc/src/main/kotlin/Plugins.kt +++ b/buildSrc/src/main/kotlin/Plugins.kt @@ -1,23 +1,18 @@ object Plugins { + const val java = "java" + object Spring { - const val BOOT_VERSION = "2.7.0" - const val BOOT = "org.springframework.boot" - - const val DEPENDENCY_MANAGEMENT_VERSION = "1.0.11.RELEASE" - const val DEPENDENCY_MANAGEMENT = "io.spring.dependency-management" + const val boot = "org.springframework.boot" + const val dependencyManagement = "io.spring.dependency-management" } - const val JAVA = "java" - object Kotlin { - const val KOTLIN = "kotlin" - const val KOTLIN_SPRING = "kotlin-spring" - const val KOTLIN_JPA = "kotlin-jpa" + const val kotlin = "kotlin" + const val kotlinSpring = "kotlin-spring" + const val kotlinJpa = "kotlin-jpa" - const val VERSION = "1.6.21" - - const val JVM = "jvm" - const val PLUGIN_SPRING = "plugin.spring" - const val PLUGIN_JPA = "plugin.jpa" + const val jvm = "jvm" + const val pluginSpring = "plugin.spring" + const val pluginJpa = "plugin.jpa" } } \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/Version.kt b/buildSrc/src/main/kotlin/Version.kt new file mode 100644 index 0000000..cac6a44 --- /dev/null +++ b/buildSrc/src/main/kotlin/Version.kt @@ -0,0 +1,14 @@ +object Version { + const val projectVersion = "0.0.1-SNAPSHOT" + const val kotlin = "1.6.21" + + object Spring { + const val boot = "2.7.0" + const val dependencyManagement = "1.0.11.RELEASE" + } + + object Deps { + const val flywayCore = "7.15.0" + const val kotlinLogging = "2.1.21" + } +} \ No newline at end of file