민팽로그

스프링 부트 시작: 인텔리제이&Gradle 본문

🍃spring boot

스프링 부트 시작: 인텔리제이&Gradle

민팽 2022. 2. 11. 18:43

1. 인텔리제이 장점

  • 강력한 추천 기능
  • 다양한 리팩토링과 디버깅 기능
  • 깃 사용 용이
  • 프로젝트 시작 시 인덱싱을 하여 파일을 비롯한 자원들에 대한 빠른 검색 가능
  • HTML, CSS, JS, XML에 대한 강력한 기능 지원
  • 자바, 스프링 부트 버전업에 대한 빠른 업데이트

 

2. Gradle 프로젝트 이해

아직 프로젝트에 maven을 사용하는 곳이 많지만, gradle은 빌드 속도가 더 빠르고 maven의 단점을 보완하여 나온 것이기 때문에 사용하는 것이라고 한다.

처음 공부할 땐 spring initializr로 무조건 스프링 부트 프로젝트를 만들었는데 build.gradle 파일의 역할을 이해하지 못하고 무조건 개발했었다. 책 공부를 하면서 좀 더 알게된듯! 일단 이 책에서는 gradle 버전 4, spring boot 버전 2.1을 사용하고 있다. 1년 사이에 업데이트가 빠르게 진행되어 현재 나는 gradle 버전 6, spring boot 버전 2.4를 사용하고 있어서 책의 코드에서 수정이 많았다. 

 

1) Gradle 4.x 

buildscript {
	//ext: build.gradle에서 사용하는 전역변수 설정 가능
    ext {
    	// 전역변수 springBootVersion의 값은 2.1.9.RELEASE
        springBootVersion = '2.1.9.RELEASE'
    }
    repositories {
        mavenCentral()
        jcenter() // 22년 2월 1일부터 서비스 종료됨
    }
    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'

group 'com.minpaeng.book'
version '1.0.4-SNAPSHOT-'+new Date().format("yyyyMMddHHmmss")
sourceCompatibility = 1.8   

//의존성을 가져 올 저장소
repositories {
    mavenCentral()
    jcenter()
}

//프로젝트 개발에 필요한 의존성 선언
//특정 버전을 명시하지 않아야 위에서 명시한 버전에 따라 관리할 수 있음
dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    compile('org.projectlombok:lombok')
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('com.h2database:h2')

    testCompile('org.springframework.boot:spring-boot-starter-test')
}

 

2) Gradle 6.x

//플러그인 관리
plugins {
    id 'org.springframework.boot' version '2.4.1'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group 'com.minpaeng'
version '0.0.1-SNAPSHOT'+new Date().format("yyyyMMddHHmmss")
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

//Junit 5를 사용하기 위한 코드(테스트 시 필요)
test {
    useJUnitPlatform()
}


dependencies {
    implementation('org.springframework.boot:spring-boot-starter-web')
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa')

    implementation ('com.h2database:h2')

    implementation('org.projectlombok:lombok')
    annotationProcessor('org.projectlombok:lombok')
    testImplementation('org.projectlombok:lombok')
    testAnnotationProcessor('org.projectlombok:lombok')

    testImplementation('org.springframework.boot:spring-boot-starter-test')
}

gradle  6.x는 4.x의 buildScript를 사용하지 않고 plugins를 통해 플러그인을 관리하는 정도의 변화가 있다.

 

 

 

reference

- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 이동욱

https://madplay.github.io/post/the-structure-of-the-gradle-project

- https://limdevbasic.tistory.com/12

Comments