본문 바로가기
Gradle basic

Springboot Initializer build.gradle (미완)

by 이석준석이 2020. 10. 24.

IntelliJ에서 Spring Initializer로 간단하게 스프링부트 어플리케이션을 생성하면 아래와 같은 build.gradle 이 생성된다.

  • 추가한 의존성
    • lombok
    • Spring Web
plugins {
    id 'org.springframework.boot' version '2.3.4.RELEASE'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
}

group = 'me.sjlee'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}

test {
    useJUnitPlatform()
}

1. plugins

  • 명시된 플러그인들을 적용한다.

2. group

 

3. version

 

4. sourceCompaibility

 

5. configurations

 

6. repositories

  • 의존 관계를 내려받기 위한 저장소를 지정한다.
    • mavenCentral() : mavenCentral 저장소를 사용하겠다.

7. dependencies

  • 명시된 의존성들이 위에 설정한 저장소(mavenCentral) 에서 내려받아 사용된다.
  • 키워드 
    • gradle 3.0 부터 deprecated된 키워드 (사용하지 맙시다.)
      • compile
        • 프로덕션 코드를 컴파일하고 실행할 때 필요하다.
      • testCompile
        • 테스트 코드를 컴파일하고 실행할 때 필요하다.
    • 3.0 이후 사용되는 키워드
      • api
      • implementation
      • compileOnly
        • 컴파일을 하는 과정에서는 필요하나, 빌드 결과물에는 포함시키지 않는 경우
          • 만약 위에서 lombok을 컴파일하게 된다면, 빌드 결과물에도 lombok에 대한 정보들이 컴파일 될 것이다.
          • 우리는 단지, getter, setter 등 lombok 어노테이션의 결과물을 원할 뿐이기 때문에 compileOnly를 사용했다.
      • testImplementation
    • annotationProcessor?

8. test

 


그레들 wrapper

  • gradle/wrapper/gradle-wrapper.jar
    • 그레들 래퍼의 부트스트랩
    • 그레들을 다운로드 할 수 있는 코드를 가진 jar파일
  • gradle/wrapper/gradle-wrapper.properties
    • 그레들 래퍼의 설정파일
      • 그레들 래퍼가 runtime에 사용하는 설정이 모아져 있음
  • gradle/gradlew
    • 유닉스 환경 실행용 쉘 스크립트
  • gradle/gradlew.bat
    • 윈도우 용 스크립트

settings.gradle

  • 빌드 대상을 설정하는 스크립트
    • 현재 프로젝트는 gradle multi project가 아니므로
    • rootProject.name 정도의 정보만 들어있다.

'Gradle basic' 카테고리의 다른 글

apply plugin: 'java' 란?  (2) 2020.11.25