From b4494837f54fd21c45f703f60ba7379ef3437f2d Mon Sep 17 00:00:00 2001 From: "woozu.shin" Date: Wed, 21 Sep 2022 21:21:48 +0900 Subject: [PATCH] [NO-ISSUE] Initialize multi-module project --- api/build.gradle.kts | 12 --- .../java/com/kakaoent/adp/adserver/Main.java | 14 --- .../adp/adserver/api/ApiApplication.kt | 18 ++++ .../ApiApplicationConfiguration.kt | 10 ++ .../adserver/api/constant/EmptyConstant.kt | 14 +++ .../kakaoent/adp/adserver/api/dto/EmptyDTO.kt | 11 +++ .../adserver/api/property/EmptyProperties.kt | 10 ++ build.gradle.kts | 99 +++++++++++++++---- domain/build.gradle.kts | 20 ++++ .../adp/adserver/domain/EmptyDomain.kt | 10 ++ settings.gradle.kts | 1 + support/build.gradle.kts | 14 --- .../java/com/kakaoent/adp/adserver/Main.java | 14 --- .../adserver/support/constant/EmptyEnum.kt | 14 +++ .../adp/adserver/support/util/EmptyUtils.kt | 10 ++ 15 files changed, 196 insertions(+), 75 deletions(-) delete mode 100644 api/src/main/java/com/kakaoent/adp/adserver/Main.java create mode 100644 api/src/main/kotlin/com/kakaoent/adp/adserver/api/ApiApplication.kt create mode 100644 api/src/main/kotlin/com/kakaoent/adp/adserver/api/configuration/ApiApplicationConfiguration.kt create mode 100644 api/src/main/kotlin/com/kakaoent/adp/adserver/api/constant/EmptyConstant.kt create mode 100644 api/src/main/kotlin/com/kakaoent/adp/adserver/api/dto/EmptyDTO.kt create mode 100644 api/src/main/kotlin/com/kakaoent/adp/adserver/api/property/EmptyProperties.kt create mode 100644 domain/build.gradle.kts create mode 100644 domain/src/main/kotlin/com/kakaoent/adp/adserver/domain/EmptyDomain.kt delete mode 100644 support/src/main/java/com/kakaoent/adp/adserver/Main.java create mode 100644 support/src/main/kotlin/com/kakaoent/adp/adserver/support/constant/EmptyEnum.kt create mode 100644 support/src/main/kotlin/com/kakaoent/adp/adserver/support/util/EmptyUtils.kt diff --git a/api/build.gradle.kts b/api/build.gradle.kts index 5724a3e..7d447f6 100644 --- a/api/build.gradle.kts +++ b/api/build.gradle.kts @@ -1,19 +1,7 @@ plugins { - id("java") -} -group = "com.kakaoent.adp.adserver" -version = "0.0.1-SNAPSHOT" - -repositories { - mavenCentral() } dependencies { - testImplementation("org.junit.jupiter:junit-jupiter-api:5.8.1") - testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.8.1") -} -tasks.getByName("test") { - useJUnitPlatform() } \ No newline at end of file diff --git a/api/src/main/java/com/kakaoent/adp/adserver/Main.java b/api/src/main/java/com/kakaoent/adp/adserver/Main.java deleted file mode 100644 index f336a72..0000000 --- a/api/src/main/java/com/kakaoent/adp/adserver/Main.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.kakaoent.adp.adserver; - -/** - * ${NAME} - * - * @author Shin Woo-jin (woozu.shin@kakaoent.com) - * @since ${YEAR}-${MONTH}-${DAY} - */ -public class Main { - - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} \ No newline at end of file diff --git a/api/src/main/kotlin/com/kakaoent/adp/adserver/api/ApiApplication.kt b/api/src/main/kotlin/com/kakaoent/adp/adserver/api/ApiApplication.kt new file mode 100644 index 0000000..74de38b --- /dev/null +++ b/api/src/main/kotlin/com/kakaoent/adp/adserver/api/ApiApplication.kt @@ -0,0 +1,18 @@ +package com.kakaoent.adp.adserver.api + +import org.springframework.boot.autoconfigure.SpringBootApplication +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration +import org.springframework.boot.runApplication + +/** + * ApiApplication + * @author Shin Woo-jin (woozu.shin@kakaoent.com) + * @since 2022-09-21 + * + */ +@SpringBootApplication(exclude = [DataSourceAutoConfiguration::class]) +class ApiApplication + +fun main(args: Array) { + runApplication(*args) +} \ No newline at end of file diff --git a/api/src/main/kotlin/com/kakaoent/adp/adserver/api/configuration/ApiApplicationConfiguration.kt b/api/src/main/kotlin/com/kakaoent/adp/adserver/api/configuration/ApiApplicationConfiguration.kt new file mode 100644 index 0000000..29502bf --- /dev/null +++ b/api/src/main/kotlin/com/kakaoent/adp/adserver/api/configuration/ApiApplicationConfiguration.kt @@ -0,0 +1,10 @@ +package com.kakaoent.adp.adserver.api.configuration + +/** + * ApiApplicationConfiguration + * @author Shin Woo-jin (woozu.shin@kakaoent.com) + * @since 2022-09-21 + * + */ +class ApiApplicationConfiguration { +} \ No newline at end of file diff --git a/api/src/main/kotlin/com/kakaoent/adp/adserver/api/constant/EmptyConstant.kt b/api/src/main/kotlin/com/kakaoent/adp/adserver/api/constant/EmptyConstant.kt new file mode 100644 index 0000000..199524b --- /dev/null +++ b/api/src/main/kotlin/com/kakaoent/adp/adserver/api/constant/EmptyConstant.kt @@ -0,0 +1,14 @@ +package com.kakaoent.adp.adserver.api.constant + +import com.kakaoent.adp.adserver.support.constant.EmptyEnum + +/** + * EmptyConstant + * @author Shin Woo-jin (woozu.shin@kakaoent.com) + * @since 2022-09-21 + * + */ +@JvmField val DEFAULT_EMPTY_ENUM : EmptyEnum = EmptyEnum.A +class EmptyConstant { + +} \ No newline at end of file diff --git a/api/src/main/kotlin/com/kakaoent/adp/adserver/api/dto/EmptyDTO.kt b/api/src/main/kotlin/com/kakaoent/adp/adserver/api/dto/EmptyDTO.kt new file mode 100644 index 0000000..88d71df --- /dev/null +++ b/api/src/main/kotlin/com/kakaoent/adp/adserver/api/dto/EmptyDTO.kt @@ -0,0 +1,11 @@ +package com.kakaoent.adp.adserver.api.dto + +/** + * EmptyDTO + * @author Shin Woo-jin (woozu.shin@kakaoent.com) + * @since 2022-09-21 + * + */ +class EmptyDTO { + +} \ No newline at end of file diff --git a/api/src/main/kotlin/com/kakaoent/adp/adserver/api/property/EmptyProperties.kt b/api/src/main/kotlin/com/kakaoent/adp/adserver/api/property/EmptyProperties.kt new file mode 100644 index 0000000..864a76e --- /dev/null +++ b/api/src/main/kotlin/com/kakaoent/adp/adserver/api/property/EmptyProperties.kt @@ -0,0 +1,10 @@ +package com.kakaoent.adp.adserver.api.property + +/** + * EmptyProperties + * @author Shin Woo-jin (woozu.shin@kakaoent.com) + * @since 2022-09-21 + * + */ +class EmptyProperties { +} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index e6cdcf3..70ba255 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,38 +1,95 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +import org.springframework.boot.gradle.tasks.bundling.BootJar plugins { id("org.springframework.boot") version "2.7.3" id("io.spring.dependency-management") version "1.0.13.RELEASE" kotlin("jvm") version "1.6.21" - kotlin("plugin.spring") version "1.6.21" - kotlin("plugin.jpa") version "1.6.21" + kotlin("plugin.spring") version "1.6.21" apply false + kotlin("plugin.jpa") version "1.6.21" apply false } -group = "com.kakaoent.adp.adserver" -version = "0.0.1-SNAPSHOT" java.sourceCompatibility = JavaVersion.VERSION_17 -repositories { - mavenCentral() -} +allprojects { + group = "com.kakaoent.adp.adserver" + version = "0.0.1-SNAPSHOT" -dependencies { - implementation("org.springframework.boot:spring-boot-starter-data-jpa") - implementation("org.springframework.boot:spring-boot-starter-web") - implementation("com.fasterxml.jackson.module:jackson-module-kotlin") - implementation("org.jetbrains.kotlin:kotlin-reflect") - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") - runtimeOnly("mysql:mysql-connector-java") - testImplementation("org.springframework.boot:spring-boot-starter-test") + repositories { + mavenCentral() + } } +subprojects { -tasks.withType { - kotlinOptions { - freeCompilerArgs = listOf("-Xjsr305=strict") - jvmTarget = "17" + apply(plugin = "java") + + apply(plugin = "io.spring.dependency-management") + apply(plugin = "org.springframework.boot") + apply(plugin = "org.jetbrains.kotlin.plugin.spring") + + apply(plugin = "kotlin") + apply(plugin = "kotlin-spring") //all-open + apply(plugin = "kotlin-jpa") + + dependencies { + implementation("org.springframework.boot:spring-boot-starter-data-jpa") + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("com.fasterxml.jackson.module:jackson-module-kotlin") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") + runtimeOnly("mysql:mysql-connector-java") + testImplementation("org.springframework.boot:spring-boot-starter-test") + } + + dependencyManagement { + imports { + mavenBom(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES) + } + + dependencies { + dependency("net.logstash.logback:logstash-logback-encoder:6.6") + } + } + + tasks.withType { + kotlinOptions { + freeCompilerArgs = listOf("-Xjsr305=strict") + jvmTarget = "17" + } + } + + tasks.withType { + useJUnitPlatform() + } + + + configurations { + compileOnly { + extendsFrom(configurations.annotationProcessor.get()) + } } } -tasks.withType { - useJUnitPlatform() +//api <- domain, support 의존 +project(":api") { + dependencies { + implementation(project(":domain")) + implementation(project(":support")) + } } + +//domain <- support 의존 +project(":domain") { + dependencies { + implementation(project(":support")) + } +} + +//support +project(":support") { + val jar: Jar by tasks + val bootJar: BootJar by tasks + + bootJar.enabled = false + jar.enabled = true +} \ No newline at end of file diff --git a/domain/build.gradle.kts b/domain/build.gradle.kts new file mode 100644 index 0000000..9865e4e --- /dev/null +++ b/domain/build.gradle.kts @@ -0,0 +1,20 @@ +plugins { +} + +allOpen { + // ref. https://dev-gorany.tistory.com/361 + annotation("javax.persistence.Entity") + annotation("javax.persistence.Embeddable") + annotation("javax.persistence.MappedSuperclass") +} + +noArg { + annotation("javax.persistence.Entity") // @Entity가 붙은 클래스에 한해서만 no arg 플러그인을 적용 + annotation("javax.persistence.Embeddable") + annotation("javax.persistence.MappedSuperclass") +} + + + +dependencies { +} diff --git a/domain/src/main/kotlin/com/kakaoent/adp/adserver/domain/EmptyDomain.kt b/domain/src/main/kotlin/com/kakaoent/adp/adserver/domain/EmptyDomain.kt new file mode 100644 index 0000000..6fd63f9 --- /dev/null +++ b/domain/src/main/kotlin/com/kakaoent/adp/adserver/domain/EmptyDomain.kt @@ -0,0 +1,10 @@ +package com.kakaoent.adp.adserver.domain + +/** + * EmptyDomain + * @author Shin Woo-jin (woozu.shin@kakaoent.com) + * @since 2022-09-21 + * + */ +class EmptyDomain { +} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index c1cce16..f92141c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,3 +1,4 @@ rootProject.name = "adp-adserver" include("api") include("support") +include("domain") diff --git a/support/build.gradle.kts b/support/build.gradle.kts index 5724a3e..8e6a31e 100644 --- a/support/build.gradle.kts +++ b/support/build.gradle.kts @@ -1,19 +1,5 @@ plugins { - id("java") -} - -group = "com.kakaoent.adp.adserver" -version = "0.0.1-SNAPSHOT" - -repositories { - mavenCentral() } dependencies { - testImplementation("org.junit.jupiter:junit-jupiter-api:5.8.1") - testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.8.1") } - -tasks.getByName("test") { - useJUnitPlatform() -} \ No newline at end of file diff --git a/support/src/main/java/com/kakaoent/adp/adserver/Main.java b/support/src/main/java/com/kakaoent/adp/adserver/Main.java deleted file mode 100644 index f336a72..0000000 --- a/support/src/main/java/com/kakaoent/adp/adserver/Main.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.kakaoent.adp.adserver; - -/** - * ${NAME} - * - * @author Shin Woo-jin (woozu.shin@kakaoent.com) - * @since ${YEAR}-${MONTH}-${DAY} - */ -public class Main { - - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} \ No newline at end of file diff --git a/support/src/main/kotlin/com/kakaoent/adp/adserver/support/constant/EmptyEnum.kt b/support/src/main/kotlin/com/kakaoent/adp/adserver/support/constant/EmptyEnum.kt new file mode 100644 index 0000000..ba73c67 --- /dev/null +++ b/support/src/main/kotlin/com/kakaoent/adp/adserver/support/constant/EmptyEnum.kt @@ -0,0 +1,14 @@ +package com.kakaoent.adp.adserver.support.constant + +/** + * EmptyEnum + * @author Shin Woo-jin (woozu.shin@kakaoent.com) + * @since 2022-09-21 + * + */ +enum class EmptyEnum { + A, + B, + C, + ; +} \ No newline at end of file diff --git a/support/src/main/kotlin/com/kakaoent/adp/adserver/support/util/EmptyUtils.kt b/support/src/main/kotlin/com/kakaoent/adp/adserver/support/util/EmptyUtils.kt new file mode 100644 index 0000000..ca96705 --- /dev/null +++ b/support/src/main/kotlin/com/kakaoent/adp/adserver/support/util/EmptyUtils.kt @@ -0,0 +1,10 @@ +package com.kakaoent.adp.adserver.support.util + +/** + * EmptyUtils + * @author Shin Woo-jin (woozu.shin@kakaoent.com) + * @since 2022-09-21 + * + */ +class EmptyUtils { +} \ No newline at end of file