◎ Maven 프로젝트를 Gradle로 변환하기
- maven과 gradle은 빌드관리도구이다
- 최근에는 gradle을 많이 사용하기 때문에 maven으로 설정된 코드를 활용하고 싶을 때 gradle로 변경이 필요하다
1. 변경하고자 하는 maven 파일 임포트 하기
- 상단의 File > Import > Existing Maven Projects > maven 프로젝트가 저장된 경로 설정
* 경로 설정 전, 다운로드 받은(가지고 있는) maven 파일은 원하는 폴더(app > jpa 폴더)에 넣어 경로로 설정하기
- 경로를 찾으면 Projects에 pom.xml 파일이 확인 됨 (체크 하고 finish)
※ 메이븐을 그레이들로 설정하기 위해
상단의 Window > Show view > Terminal 열어서 명령(gradle init) 입력
gradle init : 해당 프로젝트의 pom.xml 파일이 있는 경로로 이동
-> 환경변수 설정이 안되어 있고 그레이들이 없어서 오류 발생
2. 그레이들 다운
▷ 구글에 gradle 검색, 접속하여 다운로드
https://gradle.org/
Gradle Build Tool
Accelerate developer productivity. Gradle helps teams build, automate and deliver better software, faster.
gradle.org
Install Gradle 8.2.1 > Installing manually > Binary-only
-> 압축파일이 다운로드 됨
▷ 다운로드 파일 압축풀기
- bin 폴더 안에 각종 실행파일이 있으므로 C:\Users\admin\Downloads\gradle-8.2.1\bin 의 경로 확인
- bin 폴더에 gradle과 gradle.bat파일이 있는지 확인하기
▷ C:\dev\ide 경로에 압축 푼 파일 붙여넣기
- ide는 개발 툴 보관 폴더
3. 환경 변수 작업 (path에 등록하기)
- 어떤 위치에서도 내가 필요한 프로그램을 불러낼 수 있음
※ (참고) 환경 변수
윈도우 운영체제에서 사용하는 설정 정보가 담겨있는 변수
윈도우에서 cmd로 파일을 찾거나 실행을 시킬 때 현재 위치에 파일이 존재하지 않으면 위와 같이 "내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다." 라는 에러가 발생
실행파일의 경로가 환경변수 path에 제대로 세팅되어 있다면 어떤 위치에서도 bin에 있는 프로그램들을 불러낼 수 있으므로 환경변수 설정은 필수로 하자
* 환경변수 종류
① 사용자 계정 - admin에 대한 사용자 변수
② 시스템 전체 계정 - 시스템 변수(모든 컴퓨터 사용자에게 영향 - 공용PC 등)
▷ 내 PC(우클릭) > 속성 > 고급 시스템 설정 > 환경 변수
① 시스템 변수에서 새로만들기
변수 이름 : GRADLE_HOME
변수 값 : 디렉터리 찾아보기, gradle을 다운로드한 경로 선택
-> GRADLE_HOME 이름(별명)으로 그레이들이 설치된 장소로 접근 가능해짐
② 시스템 변수에서 Path 설정
Path 눌러 새로만들기에 gradle의 bin 경로 작성
%GRADLE_HOME%\BIN 입력
%GRADLE_HOME% : 이름에 %를 붙이면 폴더명을 의미
③ 사용자 계정에도 동일하게 변수 이름과 값을 설정하여 Path에 등록한다
3-1 환경변수에서 설정한 기능 확인
▷ cmd열어 명령어에 gradle이라고 작성
-> gradle이 있는 위치가 아니지만 gradle이 작업 가능해진다
4. 메이븐으로 빌드하고 있던 프로젝트를 그레이들로 변경하기 위한 명령어 입력
▷ 상단의 Window > Show view > Terminal 열어서 명령(gradle init) 입력
해당 명령은 메이븐의 설정파일 : pom.xml을 이용하여 그레이들의 설정파일로 변경해줌(build.gradle, setting.gradle)
gradle init 입력
해당 프로젝트의 pom.xml 파일이 있는 경로로 이동
> Generate a Gradle build from this? : yes
Maven을 찾았으니 메이븐을 기반으로 빌드할 것인가
> Select build script DSL : 1: Kotlin 2: Groovy : Groovy
스크립트언어(DSL)은 코틀린을 안배웠으니 Groovy로 설정
> Generate build using new APIs and behavior : 엔터(yes)
-> 설정완료
5. 만들어진 그레이들 파일들을 필요한 설정으로 수정하기
▷ 메이븐 설정파일 삭제하기
- pom.xml, mvnw, mvnw.cmd
- 그레이들로 사용할 것이니까 필요 없음
5-1. settings.gradle
- 프로젝트 이름하고 동일하게 설정
/*
* This file was generated by the Gradle 'init' task.
*/
rootProject.name = 'cardatabase04'
5-2. build.gradle
설정 후 생성된 빌드 파일의 dependencies에서
api 'org.springframework.boot:spring-boot-starter-data-rest:2.5.3'은 남기고 나머지 삭제
- 만들어진 그레이들 설정의 api라는 지시어가 implementation이 되어야함
implementation 'org.springframework.boot:spring-boot-starter-data-rest'
-> 그레이들에서 더이상 지원하지 않는 지시어 api를 변경하고 버전 통일을 위해 2.5.3을 지우기
- 기존에 설정한 snippets의 dependencies 설정 가지고오기
- 데이터베이스는 마리아디비로 설정
/*
* This file was generated by the Gradle 'init' task.
*/
plugins {
id 'java'
id 'org.springframework.boot' version '3.1.2'
id 'io.spring.dependency-management' version '1.1.2'
}
group = 'com.packt'
version = '1.0'
// description = 'cardatabase04'
sourceCompatibility = '17'
repositories {
mavenCentral()
}
dependencies {
///1. MVC 개발 라이브러리
// MVC 환경 개발에 필요한 필수 라이브러리
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-rest'
// 타임리프를 뷰 템플릿으로 사용할때 필요(jsp는 제스퍼)
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
// 타임리프 뷰 템플릿 레이아웃 기능 적용
implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect'
///2. 데이터베이스를 다루는 기술(3개 1. JPA 2. MyBatis 3. JDBC TEMPLATE)
// jpa방식 기술로 개발할때 필요
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
/* 당장 필요하지 않은 기술 */
// jdbc Template방식 기술로 개발할때 필요
// implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
// 순수 jdbc기술로 개발할때 필요
// implementation 'org.springframework.boot:spring-boot-starter-jdbc'
// 대한민국에서 가장 많이 사용하고 있는 데이터베이스 기술
// implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.2'
///3. 실행시 필요한 데이터베이스 jdbc 드라이버(실행하고자 하는 것 주석 열기)
// runtimeOnly 'com.h2database:h2'
// runtimeOnly 'com.mysql:mysql-connector-j'
// runtimeOnly 'com.oracle.database.jdbc:ojdbc8'
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
// 개발할때 소스 자동생성 실행시 필요한 라이브러리
annotationProcessor 'org.projectlombok:lombok'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
// 테스트 라이브러리
testImplementation 'org.springframework.boot:spring-boot-starter-test'
// testImplementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter-test:3.0.2'
}
test {
useJUnitPlatform()
}
5-3. 그레이들 추가
- 이클립스에 그레이들 사용한다고 설정하는 작업
- 메이븐과 그레이들이 충돌 할 수 있으므로 메이븐 삭제하기
프로젝트 우클릭 > Configure > Add Gradle Nature > Maven 삭제하기
6. 클래스 파일 오류 해결
- import된 버전이 달라서 오류 발생
도메인의 import를 자카르타로 변경
7. application.properties 설정
- rest에 대한 설정 파일임
- yml로 확장자 수정
# 스프링부트 서버 위치
server:
port: 80
# 스프링 기본 설정
spring:
# 데이터베이스 연결 설정(4가지)
datasource:
url: jdbc:mariadb://localhost:3306/webdb
username: webuser
password: webuser
driver-class-name: org.mariadb.jdbc.Driver
# jpa 기본설정(데이터베이스 연결 라이브러리 기본설정)
jpa:
generate-ddl: true
hibernate:
ddl-auto: create-drop
show-sql: true
# REST API 서버로 만들 때 REST서비스 기본 시작주소
data:
rest:
basePath: /api
8. 언어 설정
window > preferences > general > Content Types
- Default encoding : UTF-8로 설정이 안된 부분 변경
- 빈 칸은 그대로 두기
변경 완료!
'백엔드 > 웹 개발' 카테고리의 다른 글
GitHub 사용하기 (0) | 2023.08.17 |
---|---|
Git 설치 (0) | 2023.08.16 |
블로그 화면 구성하기 - 타임리프5 (블로그 글 수정/생성 기능 추가하기) (0) | 2023.08.11 |
블로그 화면 구성하기 - 타임리프4 (블로그 글 삭제 기능) (0) | 2023.08.10 |
필터, 정규표현식 (0) | 2023.08.03 |