STS 실습 환경 구성 - LENATeam/bom-project GitHub Wiki

Spring6-Recipes STS 설치 가이드

Spring 6 recipe 소스 받기

원하는 workspace 경로에서 아래 명령어로 spring-6-recipes 코드를 clone 해준다.

$ git clone https://github.com/Apress/spring-6-recipes.git

기본 환경설정

STS 다운로드

아래 사이트에서 설치하고자 하는 OS에 맞는 파일을 다운로드 받는다. 본 문서는 STS 4.19.0 버전을 기준으로 작성한다. https://spring.io/tools

image

다운로드 받은 파일의 압축을 해제한다.

파일명이 너무 길어 압축해제에 실패할 경우 아래와 같이 조치한다.

image

image

image

image

STS 실행

압축 해제된 경로 하위 sts-4.19.0.RELEASE 폴더 하위에 SpringToolSuite4.exe 를 실행한다. 원하는 경로로 Workspace 경로를 지정해주고 Launch 버튼을 클릭한다.

image

STS 초기화면이다.

image

Project 설정

Import Projects.. 를 선택한다.

image

Gradle > Existing Gradle Project 를 선택한다.

image

소스코드를 받은 위치로 디렉터리를 지정한다.

image

Import preview 내용을 확인한 뒤 Finish 를 선택하여 프로젝트를 가져온다.

image

JRE 설정

Windows > Preferences 메뉴로 들어가서 좌측 목록에서 Java > Installed JREs 를 선택하고 Add 버튼을 선택하여 Java 19버전을 추가해준다.

image

Standard VM 을 선택하고 다음으로 넘어간다.

image

Java 19를 설치한 디렉터리를 지정해준다.

image

추가한 JDK 19 를 체크해준다.

image

Gradle 설정

gradle.properties에 아래와 같이 java 위치(org.gradle.java.home)를 추가해 준다.

group=com.apress.spring6recipes
version=6.0.0-SNAPSHOT

org.gradle.java.home=C:\\Program Files\\Java\\jdk-19
org.gradle.caching=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx2g -Dfile.encoding=UTF-8
org.gradle.warning.mode=all

Windows 환경에서 실행할 경우 아래와 같이 settings.gradle을 수정한다.

settings.gradle(기존)

def getProjectName(String dir) {
    return (dir - (rootDir.toString() + "/")).replaceAll("/", ":")
}

settings.gradle(변경 후)

def getProjectName(String dir) {
     def projName = (dir - (rootDir.toString() + "/")).replaceAll('/', ':')
     if ( projName.equals(dir) ) {
        projName = (dir - (rootDir.toString() + "\\")).replaceAll('\\\\', ':')
     }
    return projName
}

gradle tasks

gradlew 를 실행한다.


PS C:\Users\user\Documents\workspace\spring-6-recipes> .\gradlew

Welcome to Gradle 7.6!

Here are the highlights of this release:
 - Added support for Java 19.
 - Introduced `--rerun` flag for individual task rerun.
 - Improved dependency block for test suites to be strongly typed.
 - Added a pluggable system for Java toolchains provisioning.

For more details see https://docs.gradle.org/7.6/release-notes.html

Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details

> Task :help

Welcome to Gradle 7.6.

To run a build, run gradlew <task> ...

To see a list of available tasks, run gradlew tasks

To see more detail about a task, run gradlew help --task <task>

To see a list of command-line options, run gradlew --help

For more detail on using Gradle, see https://docs.gradle.org/7.6/userguide/command_line_interface.html

For troubleshooting, visit https://help.gradle.org

BUILD SUCCESSFUL in 1m 36s
1 actionable task: 1 executed

gradle build

아래와 같이 sub project를 build 할 수 있다.

PS C:\Users\user\Documents\workspace\spring-6-recipes> .\gradlew ch02:recipe_2_1_i:build

BUILD SUCCESSFUL in 19s
9 actionable tasks: 2 executed, 7 up-to-date

gradle docker

docker 태스크로 docker 이미지를 생성한다.

> Task :ch02:recipe_2_1_i:docker
#0 building with "default" instance using docker driverk <task>
<===========--> 86% EXECUTING [4s]
#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile:ed
#1 transferring dockerfile: 912B 0.0s done
#1 DONE 0.2s
> :ch13
#2 [internal] load .dockerignore
#2 transferring context: 2B 0.0s done
#2 DONE 0.2s

#3 [internal] load metadata for docker.io/library/eclipse-temurin:19-jdk-alpine
#3 DONE 4.4s

#4 [1/8] FROM docker.io/library/eclipse-temurin:19-jdk-alpine@sha256:7e4fc4b3ae1bd8ed4205bfd76e4ebeefca3904653f8ee3ba6ac2427cc28b03c9
#4 resolve docker.io/library/eclipse-temurin:19-jdk-alpine@sha256:7e4fc4b3ae1bd8ed4205bfd76e4ebeefca3904653f8ee3ba6ac2427cc28b03c9 0.1s done
...
(중략)
...
#13 exporting to image
#13 exporting layers
#13 exporting layers 0.4s done
#13 writing image sha256:d1c8f990f2661800bb2c7cfd1dbab63a1008769bcde2681a611a0d63846e0097 done
#13 naming to docker.io/s6r/court-web:recipe_2_1_i 0.0s done
#13 DONE 0.4s

What's Next?
  View summary of image vulnerabilities and recommendations ??docker scout quickview
<=
BUILD SUCCESSFUL in 1m 6s
11 actionable tasks: 2 executed, 9 up-to-date

gradle dockerRun

dockerRun 태스크로 docker 컨테이너를 실행한다.

PS C:\workspace-spring-tool-suite-4-4.19.0.RELEASE\spring-6-recipes>  .\gradlew ch02:recipe_2_1_i:dockerRun

> Task :ch02:recipe_2_1_i:dockerRun
4984edb0898ac6f78abcd12a4ea7f73722994f32b79fa8a7da62f55870ba34dc

> Task :ch02:recipe_2_1_i:dockerRunStatus
Docker container 's6r-court-web-recipe_2_1_i' is RUNNING.

BUILD SUCCESSFUL in 5s
2 actionable tasks: 2 executed
⚠️ **GitHub.com Fallback** ⚠️