An open API service indexing awesome lists of open source software.

https://github.com/jaeyeonme/spring-boot-multi-module-with-kotlin

Spring Boot + Kotlin DSL Multi Module + Kotlin (template)
https://github.com/jaeyeonme/spring-boot-multi-module-with-kotlin

kotlin kotlin-dsl multi-module-project spring-boot template

Last synced: about 2 months ago
JSON representation

Spring Boot + Kotlin DSL Multi Module + Kotlin (template)

Awesome Lists containing this project

README

          

## Project Structure
**Multi Modules Single Project**
```
root (com.example)
├── build.gradle
└── settings.gradle
└── buildSrc
│ ├── build.gradle
│ └── src
│ └── main
│ └── kotlin
│ └── Dependencies.kt
│ └── Plugins.kt
│ └── Versions.kt
└── module-api
│ ├── build.gradle
│ └── src
│ └── main
│ └── java
│ └── com
│ └── example
│ └── moduleapi
│ └── ApiApplication.kt (Spring Boot Application)
└── module-common
│ ├── build.gradle
│ └── src
│ └── main
│ └── java
│ └── com
│ └── example
│ └── modulecommon
└── module-domain
├── build.gradle
└── src
└── main
└── java
└── com
└── example
└── moduledomain
```


## Code Formatting and Linting
```bash
./gradlew ktlintCheck // 로 틀린부분을 체크받고
./gradlew ktlintFormat // 로 자동수정을 할 수 있습니다.
```


ktlintcheck를 수동으로 수행하는 것이 귀찮다면 다음 명령으로 커밋할때마다 `ktlintcheck`가 실행되게 할 수 있습니다.
```bash
./gradlew addKtlintCheckGitPreCommitHook
```


## Build the Project
```bash
./gradlew :module-api:build
```


## Modules
- **module-api**: This moudle is reponsible for the API Server.
- **module-domain**: This module is responsible for the domain logic
- **module-common**: This moudle is responsible for common utilities and libraries.


## Dependency Flow
```lua
+----------------+
| module-api |
| |
+----------------+
^
|
+-------------------+
| module-domain |
| |
+-------------------+
^
|
+----------------+
| module-common |
| |
+----------------+
```