Gradle Project를 생성하고 Spring boot로 전환하려고 한다
애초에 이니셜라이저로 프로젝트를 만들었다면 훨씬 간단하고 편리하지만, 이후에 dependencies 추가하는 방법에 대해 알아야하므로 수동으로 전환한다.
( 이니셜라이저로 프로젝트 만드는 법: blog.naver.com/white_la/222134955580 )
코드
프로젝트 내 build.gradle 파일이 있다. (주석 제거한 상태)
apply plugin: 'java-library'
repositories {
jcenter()
}
dependencies {
api 'org.apache.commons:commons-math3:3.6.1'
implementation 'com.google.guava:guava:23.0'
testImplementation 'junit:junit:4.12'
}
위 코드를 아래와 같이 바꾼다.
작성 후에 gradle project를 refresh해서 의존성 주입된 것을 확인하면 끝!
(코드 설명 및 refresh 오류가 생긴 경우는 아래로)
buildscript {
ext {
springBootVersion = '2.1.7.RELEASE'
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
repositories {
mavenCentral()
jcenter()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
코드 설명
buildscript {
ext {
springBootVersion = '2.1.7.RELEASE'
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
ext는 전역변수를 선언하겠다는 의미이다.
springBootVersion이라는 변수에 '2.1.7.RELEASE' 값을 넣어두고, dependencies에서 사용했다.
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
'io.spring.dependency-management' 플러그인은 스프링 부트의 의존성들을 관리해 주는 플러그인이다.
위 4개의 플러그인들은 자바 및 스프링 부트를 사용하기 위한 필수 플러그인들이다.
아래와 같은 의미로 사용한다. plugins { } 쪽이 더 최신형.
plugins {
id 'java'
id 'eclipse'
id 'org.springframework.boot'
id 'io.spring.dependency-management'
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
repositories: 각종 의존성 (라이브러리)들을 어떤 원격 저장소에 저장받을지 지정
mavenCentral은 대표적이고 자주 쓰이는 저장소지만, 직접 만든 라이브러리 업로드하는 과정이 복잡하다.
이를 개선하여 jcenter가 나와 이를 사용하기도 한다.
jcenter에 라이브러리 업로드하면 mavenCentral에도 업로드될 수 있도록 자동화 할 수도 있다.
( 본 프로젝트에서는 둘 다 사용할 예정. )
오류
여기서 나는 한 가지 문제가 있었다.
org.gradle.tooling.BuildException: Could not run build action using Gradle distribution 'https://services.gradle.org/distributions/gradle-4.3-bin.zip'
오류를 꼼꼼히 읽어보니 버전 호환 문제가 있는 것 같다.
최소한 4.4 이상의 Gradle을 사용하라는 식의 문구가 있어서 Gradle 설정을 수정했다.
프로젝트 우클릭 - properties - gradle - Specific Gradle Version 수정
영어 읽는거 정말 귀찮지만 중요한 것 같다...
해당 게시글은 [ 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 / 이동욱 ] 책을 따라한 것을 정리하기 위한 게시글입니다. 요약, 생략한 부분이 많으니 보다 자세한 설명은 책 구매를 권장합니다.
'Clone Coding > 스프링 부트와 AWS' 카테고리의 다른 글
[Mustache] 화면 구성 (0) | 2021.01.18 |
---|---|
[JPA Auditing] 생성/수정시간 자동화 (0) | 2021.01.18 |
[Spring] 등록 API 만들기 (+h2 웹 콘솔 이용하기) (0) | 2021.01.15 |
[Spring] JPA로 database 다루기 (0) | 2021.01.11 |
[Spring] 테스트 코드 작성하기 (0) | 2021.01.08 |