build.gradle
// 자바 개발에 가장 기초적인 설정
// 플러그인 의존성 관리를 위한 설정
// 4개의 플러그인은 자바와 스프링 부트를 사용하기 위해서는 필수 플러그인들이니 항상 추가하면 됩니다.
plugins {
id 'java'
// springBootVersion 전역변수를 생성하고 그 값을 '2.1.7.RELEASE'로 하겠다는 의미
// 즉, spring-boot-gradle-plugin라는 스프링 부트 그레이들 플러그인의 2.1.7.RELEASE를 의존성으로 받겠다는 의미
id 'org.springframework.boot' version '2.7.17'
// io.spring.dependency-management 플러그인은 스프링 부트의 의존성들을 관리해 주는 플러그인이라 꼭 추가해야만 합니다.
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}
group = 'com.jojoldu.book'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
// repositories는 각종 의존성 (라이브러리)들을 어떤 원격 저장소에서 받을지를 정합니다
repositories {
// 기본적으로 mavenCentral을 많이 사용하지만,
// 최근에는 라이브러리 업로드 난이도 때문에 jcenter도 많이 사용합니다.
// mavenCentral은 이전부터 많이 사용하는 저장소지만,
// 본인이 만든 라이브러리를 업로드하기 위해서는 정말 많은 과정과 설정이 필요합니다.
// 그러다 보니 개발자들이 직접 만든 라이브러리를 업로드하는 것이 힘들어 점점 공유가 안 되는 상황이 발생했습니다.
mavenCentral()
// 최근에 나온 jcenter는 이런 문제점을 개선하여 라이브러리 업로드를 간단하게 하였습니다.
// 또한, 여기서 한 걸음 더 나아가 jcenter에 라이브러리를 업로드하면 mavenCentral에도 업로드될 수 있도록 자동화를 할 수 있습니다.
// 그러다 보니 개발자들의 라이브러리가 점점 jcenter로 이동하고 있습니다.
// 여기서는 mavenCentral, jcenter 둘 다 등록해서 사용하겠습니다.
}
// dependencies는 프로젝트 개발에 필요한 의존성들을 선언하는 곳입니다.
// 여기서는 org.springframework.boot:spring-boot-starter-web와 org.springframework.boot:spring-boot-starter-test를 받도록 선언되어 있습니다.
// 재미있는 것은 인텔리제이는 메이븐 저장소의 데이터를 인덱싱해서 관리하기 때문에 커뮤니티 버전을 사용해도 의존성 자동완성이 가능합니다.
// 의존성 코드는 직접 작성해도 되고, 자동완성으로 만들어도 됩니다.
// 단, 특정 버전을 명시하면 안 됩니다.
// 버전을 명시하지 않아야만 맨 위에 작성한 'org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}'의 버전을 따라가게 됩니다.
// 이렇게 관리할 경우 각 라이브러리들의 버전 관리가 한 곳에 집중되고, 버전 충돌 문제도 해결되어 편하게 개발을 진행할 수 있습니다.
dependencies {
// implementation 메소드 안에 라이브러리의 이름의 앞부분만 추가한 뒤 자동완성(Ctrl + Space)을 사용하면 해당 라이브러리들의 목록을 볼 수 있습니다.
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('bootBuildImage') {
builder = 'paketobuildpacks/builder-jammy-base:latest'
}
tasks.named('test') {
useJUnitPlatform()
}
// 코드 작성이 다 되었다면 'build.gradle에 변경이 있으니 반영하라'는 인텔리제이의 알람이 오른쪽 아래에 나옵니다.
// 알람 오른쪽의 [Enable Auto-import]를 클릭하면 build.gradle 변경이 있을 때마다 자동으로 반영이 되며,
// 왼쪽 [Import Changes] 버튼을 클릭하면 1번만 반영됩니다.
// 변경이 있을 때마다 클릭하기는 번거로우니 [Enable Auto-import] 버튼을 클릭합니다.
// 클릭하게 되면 그레이들이 변경된 내용을 반영하기 시작합니다.
// 추가한 두 개의 라이브러리인 spring-boot-start-web과 spring-boot-starter-test와 관련된 라이브러리들을 바독 있는 것을 확인할 수 있습니다.
// 오른쪽 위의 [Gradle] 탭에서 의존성들이 잘 받아졌는지 확인해 봅니다.
// main에서는 spring-boot-start-web이, test에서는 spring-boot-start-web, spring-boot-start-test 의존성이 잘 받아졌던 것을 확인할 수 있습니다.
// 윈도우에서 [Ctrl + Shift + A]를 사용해 Action 검색창을 열어 share project on github을 검색합니다.
build.gradle
// 33p
// 플러그인 의존성 관리를 위한 설정
buildscript{
// ext 키워드 : build.gradle에서 사용하는 전역변수를 설정하겠다는 의미
ext{
// springBootVersion 전역변수를 생성하고 그 값을 '2.1.7.RELEASE'로 하겠다는 의미
// 즉, spring-boot-gradle-plugin라는 스프링 부트 그레이들 플러그인의 2.1.7.RELEASE를 의존성으로 받겠다는 의미
springBootVersion = '2.1.7.RELEASE'
}
// repositories는 각종 의존성 (라이브러리)들을 어떤 ㅜ언격 저장소에서 받을지를 정합니다
repositories{
// 기본적으로 mavenCentral을 많이 사용하지만,
// 최근에는 라이브러리 업로드 난이도 때문에 jcenter도 많이 사용합니다.
// mavenCentral은 이전부터 많이 사용하는 저장소지만,
// 본인이 만든 라이브러리를 업로드하기 위해서는 정말 많은 과정과 설정이 필요합니다.
// 그러다 보니 개발자들이 직접 만든 라이브러리를 업로드하는 것이 힘들어 점점 공유가 안 되는 상황이 발생했습니다.
mavenCentral()
// 최근에 나온 jcenter는 이런 문제점을 개선하여 라이브러리 업로드를 간단하게 하였습니다.
// 또한, 여기서 한 걸음 더 나아가 jcenter에 라이브러리를 업로드하면 mavenCentral에도 업로드될 수 있도록 자동화를 할 수 있습니다.
// 그러다 보니 개발자들의 라이브러리가 점점 jcenter로 이동하고 있습니다.
jcenter()
// 여기서는 mavenCentral, jcenter 둘 다 등록해서 사용하겠습니다.
}
dependencies{
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
// 4개의 플러그인은 자바와 스프링 부트를 사용하기 위해서는 필수 플러그인들이니 항상 추가하면 됩니다.
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
// io.spring.dependency-management 플러그인은 스프링 부트의 의존성들을 관리해 주는 플러그인이라 꼭 추가해야만 합니다.
apply plugin: 'io.spring.dependency-management'
// 자바 개발에 가장 기초적인 설정
/*
plugins {
id 'java'
}
*/
group = 'com.jojoldu.book'
version = '1.0-SNAPSHOT'
//sourceCompatibility = 1.8
repositories {
mavenCentral()
}
// dependencies는 프로젝트 개발에 필요한 의존성들을 선언하는 곳입니다.
// 여기서는 org.springframework.boot:spring-boot-starter-web와 org.springframework.boot:spring-boot-starter-test를 받도록 선언되어 있습니다.
// 재미있는 것은 인텔리제이는 메이븐 저장소의 데이터를 인덱싱해서 관리하기 때문에 커뮤니티 버전을 사용해도 의존성 자동완성이 가능합니다.
// 의존성 코드는 직접 작성해도 되고, 자동완성으로 만들어도 됩니다.
// 단, 특정 버전을 명시하면 안 됩니다.
// 버전을 명시하지 않아야만 맨 위에 작성한 'org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}'의 버전을 따라가게 됩니다.
// 이렇게 관리할 경우 각 라이브러리들의 버전 관리가 한 곳에 집중되고, 버전 충돌 문제도 해결되어 편하게 개발을 진행할 수 있습니다.
dependencies {
/*
testImplementation platform('org.junit:junit-bom:5.9.1')
testImplementation 'org.junit.jupiter:junit-jupiter'
*/
// Spring Boot가 2.1 -> 2.4로 변경되면서 build.gradle dependencies compile 메소드 이름이 변경되었습니다.
// 교재의 compile은 `implementation`로, testCompile은 `testImplementation`로 바꿔주세요.
// compile 메소드 안에 라이브러리의 이름의 앞부분만 추가한 뒤 자동완성(Ctrl + Space)을 사용하면 해당 라이브러리들의 목록을 볼 수 있습니다.
//compile("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-web")
//testCompile("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}
/*
test {
useJUnitPlatform()
}
*/
// 코드 작성이 다 되었다면 'build.gradle에 변경이 있으니 반영하라'는 인텔리제이의 알람이 오른쪽 아래에 나옵니다.
// 알람 오른쪽의 [Enable Auto-import]를 클릭하면 build.gradle 변경이 있을 때마다 자동으로 반영이 되며,
// 왼쪽 [Import Changes] 버튼을 클릭하면 1번만 반영됩니다.
// 변경이 있을 때마다 클릭하기는 번거로우니 [Enable Auto-import] 버튼을 클릭합니다.
// 클릭하게 되면 그레이들이 변경된 내용을 반영하기 시작합니다.
// 추가한 두 개의 라이브러리인 spring-boot-start-web과 spring-boot-starter-test와 관련된 라이브러리들을 바독 있는 것을 확인할 수 있습니다.
// 오른쪽 위의 [Gradle] 탭에서 의존성들이 잘 받아졌는지 확인해 봅니다.
// main에서는 spring-boot-start-web이, test에서는 spring-boot-start-web, spring-boot-start-test 의존성이 잘 받아졌던 것을 확인할 수 있습니다.
'Spring > 스프링 부트와 AWS로 혼자 구현하는 웹 서비스' 카테고리의 다른 글
CHAPTER 03 스프링 부트에서 JPA로 데이터베이스 다뤄보자 (1) | 2023.11.25 |
---|---|
CHAPTER 02 스프링 부트에서 테스트 코드를 작성하자 (0) | 2023.11.25 |