1. 이번 예제에서는 프로젝트내 모듈로 스프링부트 Application을 올려보도록 하겠습니다. 인텔리제이를 실행하시고 Projects > NEW PROJECT를 눌러주세요.
2. Empty Project를 선택하여 생성해 주세요.
3. 빈 프로젝트 생성이 완료되면 바로 Project Structrue 메뉴가 뜨게 됩니다. 여기서 좌측 Modules > Add(+) > New Module 을 선택하여 스프링부트 모듈을 생성해 보도록 하겠습니다.
4. 좌측 Spring Initializr 탭 선택 후 원하는 SDK 버전을 선택해 주세요. spriing starter service URL은 네트워크가 연결되어 있다면 기본 설정인 https://start.spring.io 로 두고 다음 단계로 넘어가 주시면 됩니다.
5. Spring Initializr Project Settings 메뉴에서 원하는 형태의 스프링 프로젝트를 세팅 할 수 있습니다.
Group과 Artifact명을 적절하게 기재해 주시고 빌드 도구는 Maven / Gradle, 언어는 Java, Kotlin, Groovy 중 Maven, Java를 선택하도록 하겠습니다.
패키징은 Jar와 War중 선택이 가능한데 Jar를 선택하면 스프링부트 내장톰캣(Embeded Tomcat)을 사용하여 Stand Alone으로 WAS를 구동시킬 수 있습니다. 외부 WAS에 Deploy해서 사용하는 환경이시라면 War를 선택하여 내보내시면 됩니다.
6. 다음은 프로젝트 의존성(Dependencies)를 선택하는 단계입니다. 필요한 의존성을 선택하면 Maven/Gradle의 pom.xml이나 build.gradle 설정 파일에 자동으로 항목이 추가되고 레파지토리에서 내려받게 됩니다. 물론 추후 따로 추가하여 내려받는 것도 가능하므로 일단 생각나는 것만 먼저 추가해 주시면 됩니다!
7. 마지막으로 Module의 이름과 root 경로를 지정해 주세요.
8. 스프링부트 프로젝트(모듈)이 추가된 것을 확인하실 수 있습니다. 모듈 Language level을 선택했던 jdk버전과 맞춰주고 OK를 눌러 생성된 프로젝트 구조를 살펴보겠습니다.
9. 생성된 스프링부트 프로젝트(모듈)의 구조입니다. 주요 파일로는 스프링부트 컨테이너를 실행시키기 위한 src폴더내의 main Class가 있고 resources폴더 아래는 web모듈을 선택했기 때문에 html, css, js등의 정적컨텐츠가 위치할 static 폴더가 자동으로 생성됐으며 여러가지 설정정보를 위한 application.properties 파일도 생성되었습니다.
그리고 아까 빌드도구로 선택했던 Maven을 위한 설정파일인 pom.xml과 선택했던 라이브러리의 의존성 설정들이 자동으로 추가되어 프로젝트로 내려받아 진 것을 확인 하실 수 있습니다.
10. 적절한 DB 데이터 소스 정보를 입력해 주셔서 정상적으로 설정을 로드할 수 있도록 하셔도 되고, 본 프로젝트에서는 일단 어노테이션을 통해 Auto Configuration에서 DataSource 관련 설정 로드를 WAS 구동시 하지 않도록 exclude 하도록 하겠습니다.
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
11. 내장톰캣을 사용하는 Jar로 패키징을 선택했기 때문에 별도 설정 없이 바로 스프링부트 어플리케이션을 실행해 보도록 하겠습니다. Build Project(⌘+F9) 후 메인 클래스 옆의 실행버튼이나 상단 실행버튼(^+R)을 눌러 실행해 주세요.
12. index.html 파일을 생성하여 직접 브라우저에서 localhost에 기본포트인 8080로 떠있는 WAS에 요청하여 웹페이지를 띄워보도록 하겠습니다. spring-boot-starter-web 의존성을 선택하여 자동으로 생성됐던 정적리소스 관리 폴더인 static 폴더 아래 index.html파일을 생성해 주시기 바랍니다.
혹시 의존성 Spring Web 의존성 추가를 안하신 분들은 Dependency를 추가후 static 폴더를 만들어 주시면 됩니다.
출처: https://ifuwanna.tistory.com/294 [IfUwanna IT]
=================================실습================================
1. New project 에서 빈 프로젝트 생성
2. modules + 에서 new module Spring Initializr 에서 기본 설정
2-1. 기본설정 2 DB 안쓰지만 설정 맞춤
3. 프로젝트 구조가 이상함 1번에서 emptymodules -> Spring Initializr 탭으로 다시만듬
3. 나머지는 본문 10번내용과 같음
Application
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class}) 설정 후 깃허브 업로드
그후 서버 배포를 위한 jar 파일 빌드..
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project arco: Fatal error compiling: invalid target release: 11 -> [Help 1]
에러가 뜸
찾아보니 ...
에러 원인
에러 문구를 해석해보자면 말그대로 본인의 프로젝트명 (필자의 경우 musicchart) 에 설정된 maven-compiler-plugin:2.5.1 버전으로 컴파일하는데 실패했다는 뜻입니다.
즉, 저 컴파일을 돌리고 있는 서버에 설치된 메이븐 버전을 확인해보세요.
# mvn -version
Apache Maven 3.6.0
Maven home: /usr/share/maven
Java version: 11.0.8, vendor: Ubuntu, runtime: /usr/local/java-11-openjdk-amd64
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "5.3.0-1019-aws", arch: "amd64", family: "unix"
root@musicprogram:/home/ubuntu/app/step1/MusicProgram# cd ..
root@musicprogram:/home/ubuntu/app/step1# ./deploy.sh
저는 3.6.0 으로 나오군요.
하지만, 프로젝트의 pom.xml에 명시된 maven complier 버전은 2.5.1 로 되어 있었습니다.
그러니깐 위에서 저런 에러가 떴겠죠?
해결 방법
이렇게 메이븐 컴파일러 버전을 서버에 설치된 컴파일러 버전과 똑같이 바꿔주니 해결되었습니다.
이런 말이 있음 출처 : https://rimkongs.tistory.com/264
버전 변경 불가
찾아보니 자바 버전이 안맞는다는 말이 있음(https://rimkongs.tistory.com/262) 1.8 버전으로 맞추고 packaging 추가 안해서 그것도 추가함
mvnw clean pakage -> jar 파일 생성 완료
'intellij +springboot' 카테고리의 다른 글
[github] remote repository 공유가 안될 때 (remote: Repository not found) (0) | 2021.06.11 |
---|---|
[IntelliJ] IntelliJ + Github 연동하기 (0) | 2021.06.11 |
[Thymeleaf] 문법 및 사용법 정리 (0) | 2021.06.09 |
Lombok 어노테이션 정리 (0) | 2021.06.01 |
Security 로그인 후 이전페이지 가기 (1) | 2021.05.31 |