인프런 커뮤니티 질문&답변

코코볼님의 프로필 이미지

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

프로젝트 설정

form프로젝트 import에러 해결했어요! 도움되시라고 작성해보았습니다~

작성

·

1.6K

·

수정됨

2

안녕하세요.

오늘 수업자료 다운로드 후 form-start파일을 form으로 프로젝트명 변경 하고 에러나는 부분때문에 2시간을 막연하게 보내고 구글링 + 인프런에 있는 수강자분들의 질문과 공식서포터즈 님들의 해결방법 작성해놓은것들 그대로 셋팅해봐도 안되었던 문제를 해결했어요.

해결방법 공유를 위해 작성했습니다! (질문아니예요ㅠ)

저는 설정하면서 총 3개의 문제를 겪음 ㅠ

제가 겪고 해결한 부분이 도움될 분들이 계실거라 생각하고 몇자 적어봅니다. (사실 좀 길어요ㅠ 그래도 제가 버린시간을 다른분들께선 알차게 쓰시길 바라는 마음으로 작성중)

 

 

[진행 및 문제를 확인]

프로젝트를 import 한후 build.gradle 파일을 열어서 gradle 7버전 이상, java는 17로 사용하는 것으로 설정완료.

이후 윈도우에서 인텔리제이를 사용하고 있어서 setting 접속한 후 해당설정 화면에서 gradle버전을 PC에 7.4버전이 설치되어 있는 경로로 설정, 그리고 자바도 17버전으로 설정을 해줍니다. refrash하는데 에러...

저는 gardle 7.4-all버전을 사용하려고 설정을 모두 gradle설정하는부분은 7.4버전대로 설정했는데 뜬금없이 console에 나타난 에러메세지는 gradle을 gradle-6.8.2-bin.zip 로 설정되어있어서 안된다고 나오더라구요.

에러메세지 : Unsupported Java.

Your build is currently configured to use Java 17.0.4 and Gradle 6.8.2.

 

[원인]

분명히 setting > gradle 메뉴에가서 gradle을 7버전 사용한다고 설정했는데...

뭐가 문제지? 싶어서 구글링해도 뭐해도 다 해봤던 설정만 나와서 답답하더라구요.

그래서 그냥 우선 gradle관련 설정파일을 하나하나 확인해봐야겠다는 마음으로 gradle설정파일을 확인하는데 그중 gardle-wrapper.properties 파일에 문제가 있음을 확인

사실 설정관련 정보는 저도 잘 몰라요.. 그런데 확실하게 알수 있었던건 distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-bin.zip

이 부분으로 인해 프로젝트가 gradle을 다른버전을 사용하도록 설정되어 있는걸 알게됨.

 

 

[문제1 해결방법]

1. form > gradle > wrapper > gradle-wrapper.properties 파일을 클릭해서 오픈

2. distributionUrl에 있는 설정정보를 gradle을 7버전 이상으로 설정값을 변경

그런데 저는 다른정보도 변경해줘야 할것 같아서 이전에 타임리프 프로젝트에서 설정되어있는 gradle-wrapper.properties 파일의 정보를 그대로 복붙했어요.(저는 여기서 gradle-8.5-bin.zip으로 설정되어있어서 그냥 그거 설정함)

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

 3. gradle refresh

 

 

[문제2 또 에러 (자바9버전 이상에서 제공되지 않는 어노테이션 문제)

그런데 refresh 한 후 여기까지 하고 또 에러가 납니다.

프로젝트에 자바9버전이상에서 그냥 사용할 수 없는 어노테이션이 있나봐요. 영한님이 이전 servlet강의에서 말씀해주셨던 자바8인가? 9이상부터 제공되지 않는 어노테이션들이 자바 17버전에서 제공되지 않는 문제..

사용하도록 설정해야되니까 관련 코드를 찾아서 dependencies에 추가해주는걸로 해결했어요.

에러메세지 : path~~~~\dev\05_스프링mvc2-백엔드웹개발활용기술\form\src\main\java\hello\itemservice\TestDataInit.java:8: error: package javax.annotation does not exist

import javax.annotation.PostConstruct;^

 

[문제2 해결방법]

1.build.gradle 파일열기

2. dependencies에 아래의 코드 추가

implementation group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'

3. gradle refresh

 

 

[문제3 또 에러]

문제1, 문제2 까지 겪고 해결방법대로 설정완료 후 잘되나 싶더만 아래의 에러메세지가 나타납니다.

프로젝트가 빌드될때 java11이 사용되도록 설정이 되어있어서 발생된것 같아 17로 변경해줍니다.

에러메세지 : * What went wrong: Execution failed for task ':ItemServiceApplication.main()'.

> Process 'command 'C:\Program Files\Java\jdk-11.0.17\bin\java.exe'' finished with non-zero exit value 1

 

[문제3 해결방법]

1. 우측상단 select Run/debug configuration 박스클릭

2. Edit Configurations 클릭

3. Run/Debug Configurations 설정 창에서 java version 7로 변경

 

이후 프로젝트가 잘 구동되어 강의 듣을수 있게 되었습니다 ㅋㅋㅋ 으..

말주변 없어서 이거 작성하느냐고 1시간 걸림 ㅠㅠ 설명이랑 같이 작성하느냐고 두서없을수 있으나..

한가지라도 도움되시길 바라면서 마침!

 

ps. 프로젝트의 설정파일 정보가 변경되었으면 좋겠습니다!

프로젝트를 다운받고 안되는 부분이 초보입장에선 동공에 지진이...

좋은강의 늘 감사합니다:)

답변 3

5

2번문제의 경우 javax dependency 추가 설정 필요없이 jakarta로 import 해주면 잘 동작합니다.

회사가 바뀌면서 라이브러리 명도 바뀌었네요

https://www.samsungsds.com/kr/insights/java_jakarta.html

1

import jakarta.annotation.PostConstruct;

1

안녕하세요. 키썬님

정보 공유 감사합니다 :)