[Spring] 프로젝트 환경설정

김나윤·2023년 5월 15일
0

Spring

목록 보기
2/9

1. 프로젝트 생성

1-1. 스프링 부트 스타터 사이트로 이동해 스프링 프로젝트 생성

[스프링부트 스타터] https://start.spring.io/
스프링이 운영하는 스프링부트 기반으로 한 스프링 프로젝트를 만들어주는 사이트

Project

a. Maven vs Gradle
필요한 라이브러리를 당겨와서 build하는 라이프 사이클까지 관리해주는 툴.
전엔 Gradle이 있었는데 Groovy와 Kotlin으로 세분화 된 듯하다.
최근에는 Gradle을 많이 쓰는 추세로 현업에서 Maven을 쓰는 경우는 잘 없다고 한다.

b. Spring Boot
SNAPSHOT은 아직 만들고 있는 버전, M2 정식 릴리즈 되지 않은 버전으로 그 외의 다른 버전으로 선택해준다.

Group: 보통 기업 도메인 명을 사용
Artifact: build 되어 나온 결과물
Name: 프로젝트 명이라고 보면 된다.
Description과 Packaging name은 그대로 두고
Packaging은 Jar를, Java는 원하는 버전을 선택해준다.
Jar을 선택하면 tomcat이 자동으로 세팅되어 단독으로 실행이 가능하다.

c. Dependencies

Dependencies는 스프링 부트 기반으로 프로젝트를 시작할 건데 어떤 라이브러리를 당겨올 것이냐를 묻는 것이다.

여기서 ADD DEPENDENCIES... 를 선택하여 Spring WebThymeleaf를 검색하여 추가해준다.

Tymeleaf는 HTML을 만들어주는 템플릿 엔지니어로 회사마다 다른 템플릿을 사용한다. 여기서는 Tymeleaf를 선택했다.

여기까지 설정을 마쳤으면 하단의 GENERATE 버튼을 눌러 파일을 다운받고 압축을 풀어 인텔리제이에서 열어준다.


인텔리제이를 실행해 다운 받은 파일이 저장된 경로를 찾아 build.gradle 파일을 열어준다.

위와 같은 창이 뜨면 Open as Project를 눌러준다.


Trust Project를 눌러주면 된다.

처음 파일을 열게 되면 외부에서 수십 메가의 라이브러리를 다운 받기 때문에 네트워크가 필요하고 시간이 꽤 오래 걸린다.


1-2. [Error] Dependency requires at least JVM runtime version 17.


순조롭게 진행되는가 했더니..
jdk 버전이 맞지 않는다는 오류가 발생했다.
스프링 부트 3.0 이상을 사용할 경우, 반드시 jdk 17 이상을 사용해야 하는데 나는 21을 사용하고 있어 문제가 없다고 생각했다.
SDK도 openjdk21이 잡혀있었고..
그런데 계속 java 17 이상을 사용해야 한다는 오류가 뜨길래 당황스러웠다.
구글링 해서 나오는 해결방법을 써봤지만
cf. https://jojoldu.tistory.com/698

Could not resolve all artifacts for configuration ':classpath'.
오류 발생가 발생했고..
혹시나 해서 콘솔에서 java -version javac -version 으로 확인한 결과, java와 javac 모두 1.8버전으로 나왔다.
역시 컴퓨터는 잘못이 없구나ㅠ

https://www.oracle.com/kr/java/technologies/downloads/#jdk17-windows 에서 다시 자바 상위 버전을 다운 받고

File > Project Structure > Project Settings > Project > SDK 를 openjdk-23 로 잡아주고,

File > Settings > Build, Execution, Deployment > Gradle > Gradle JVM 을 openjdk-23으로 다시 잡아줬다.

그 뒤 refresh를 해보니 정상적으로 실행되는 걸 확인할 수 있었다.

2. 라이브러리 살펴보기

Gradle을 통해 버전을 설정하고 라이브러리를 가져왔다.


3. View 환경설정


4. 빌드하고 실행하기

1) IntelliJ 자체에서 빌드

main메서드를 실행하고 주소창에 localhost:8080를 입력하여 서버와 잘 연결되었는지 확인까지 마쳤다.


추가로 File > Settings > Build, Execution, Deployment > Gradle > Gradle Projects 에서
Build and run using과 Run tests using을 IntelliJ IDEA로 변경해주었다.
Gradle로 설정되어 있는 경우, Gradle을 통해서 run을 하면 속도가 느려지기 때문에
IntelliJ IDEA를 설정함으로써 인텔리제이에서 자바를 바로 잡아서 띄워주기 때문에 훨씬 빨리 결과를 얻을 수 있다.

2) Console에서 빌드

콘솔로도 빌드를 할 수 있는데,
Windows + R > cmd 입력하여 명령 프롬프트를 열어준다.
내가 빌드하려는 프로젝트 디렉토리를 알려주고 gradlew를 실행하려고 했더니

C:\Users\user>java -version
java version "23" 2024-09-17
Java(TM) SE Runtime Environment (build 23+37-2369)
Java HotSpot(TM) 64-Bit Server VM (build 23+37-2369, mixed mode, sharing)

C:\Users\user>cd/inflearn/hello-spring

C:\inflearn\hello-spring>gradlew

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred configuring root project 'hello-spring'.
    Could not resolve all artifacts for configuration ':classpath'.
    Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.3.4.
    Required by:
    root project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.3.4
    Dependency requires at least JVM runtime version 17. This build uses a Java 8 JVM.

  • Try:
    Run this build using a Java 17 or newer JVM.
    Run with --stacktrace option to get the stack trace.
    Run with --info or --debug option to get more log output.
    Run with --scan to get full insights.
    Get more help at https://help.gradle.org.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/8.10.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD FAILED in 6s

이런 오류가 발생하면서 빌드에 실패했다는 문구가 떴다.
잘 읽어보니 자바 버전이 맞지 않아 생긴 문제 같았다. 그런데 내가 쓰고 있는 버전은 23 버전인데..?
cmd로 확인해보니 jdk -23이 맞았다.
검색해보니 시스템 설정에서 Java 버전이 제대로 인식하지 않아 발생하는 문제일 수도 있다고 했다.
설정 > 시스템 > 고급 시스템 설정 > 환경변수 에서 JAVA_HOME의 값으로 자바23 버전이 설치된 경로를 입력해주었다.
PATH 변수는 %JAVA_HOME%\bin이 제대로 잡혀있어 그대로 유지해주었다.

다시 명령 프롬프트를 열어 cd/(프로젝트 파일 경로)를 통해 경로를 설정해주고,
변경된 환경변수를 제대로 적용하기 위해 gradlew --refresh-dependencies 를 실행해주었다. 그랬더니 정상적으로 빌드가 된 것을 확인할 수 있었다.

gradlew 실행,

순차적으로 build해주고 dir을 통해 폴더 목록을 확인해 실행해보면

정상적으로 가동 성공!

profile
Hello, world!

0개의 댓글