본문 바로가기

Spring + Kotlin API Server 만들기 (2) : project setting

Project Setting

각종 설계에 들어가기 전에, project setting을 진행한다.

JVM + Spring Setting

2021.12.20 - [Spring] - Spring + Kotlin 환경 세팅 (Ubuntu 20.04 + VScode)

 

Spring + Kotlin 환경 세팅 (Ubuntu 20.04 + VScode)

Ubuntu 20.04에서 Spring + Kotlin 환경 세팅 1. JVM 설치 sudo apt install default-jre sudo apt install default-jre java -version javac -version 2. Gradle 설치 VERSION=7.3.2 wget https://services.gradl..

coding-robot.tistory.com

Intellij install

spring framework를 사용하기에 개인적으로 intellij만큼 편한게 없는거 같으니 설치해서 편집기로 사용해 주자...

Project Start

https://start.spring.io

에 접속해서 다음과 같이 세팅 한뒤 다운받아 주자.

start.spring.io에서 project setting

파일을 받은 뒤 압축을 해제하면 기본적인 파일 구조가 잡혀 있다.

Gradle setting

프로젝트를 진행하기 위한 dependency를 확인하기 위해 build.gradle.kts를 다음과 같이 변경한다.

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
	val kotlinVersion = "1.6.10"
	id("org.springframework.boot") version "2.6.3"
	id("io.spring.dependency-management") version "1.0.11.RELEASE"
	id("org.asciidoctor.convert") version "1.5.8"
	kotlin("jvm") version kotlinVersion
	kotlin("plugin.spring") version kotlinVersion
	kotlin("plugin.jpa") version kotlinVersion
}

group = "com.studuy"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_11

configurations {
	compileOnly {
		extendsFrom(configurations.annotationProcessor.get())
	}
}

repositories {
	mavenCentral()
}

val snippetsDir by extra { file("build/generated-snippets") }

dependencies {
	implementation("org.springframework.boot:spring-boot-starter-data-jpa")
	implementation("org.springframework.boot:spring-boot-starter-web")
	implementation("org.springframework.boot:spring-boot-starter-mustache")
	implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
	implementation("org.jetbrains.kotlin:kotlin-reflect")
	implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
	runtimeOnly("com.h2database:h2")
	runtimeOnly("org.springframework.boot:spring-boot-devtools")
	testImplementation("org.springframework.boot:spring-boot-starter-test")
}
allOpen {
	annotation("javax.persistence.Entity")
	annotation("javax.persistence.MappedSuperclass")
	annotation("javax.persistence.Embeddable")
}
tasks.withType<KotlinCompile> {
	kotlinOptions {
		freeCompilerArgs = listOf("-Xjsr305=strict")
		jvmTarget = "11"
	}
}

tasks.withType<Test> {
	useJUnitPlatform()
}

tasks.test {
	outputs.dir(snippetsDir)
}

tasks.asciidoctor {
	inputs.dir(snippetsDir)
	dependsOn(tasks.test)
}
  • 설명
    • implementation("org.springframework.boot:spring-boot-starter-data-jpa")
      • Spring의 Data JPA를 사용하기 위한 종속성이다.
    • implementation("org.springframework.boot:spring-boot-starter-web")
      • Spring의 Web MVC를 사용하기 위한 종속성이다.
    • implementation("org.springframework.boot:spring-boot-starter-mustache")
      • Spring의 mustache( html rendering )를 사용하기 위한 종속성이다
    • runtimeOnly("com.h2database:h2")
      • H2 Data Base를 사용하기 위한 종속성이다.

 

**Intellij같은 경우는 알아서 빌드를 해주지만 아닌 경우에는 terminal에 다음과 같이 입력해주자

cd ~/{your project}
./gradlew build

이렇게 돼면 기본적인 프로젝트 세팅이 끝났다.