사용자 도구

사이트 도구


springframework:springboot:gradle

SpringBoot and Gradle

Dependency Version Override

의존 라이브러리의 버전을 다른 것으로 바꾸고자 한다면 property를 변경하면 된다.

// 하이버네이트 버전
ext['hibernate.version'] = '5.2.14.Final'

혹은 프로젝트의 gradle.properties 에 설정할수도 있다.

hibernate.version=5.2.14.Final
  • Dependency versions 여기서 버전 프라퍼티 목록을 알 수 있다.
  • Gradle 에서 SpringBoot 버전 프라퍼티의 값을 읽고자 한다면
// slf4j.version 의 값을 읽을 때는
def slf4jVersion = dependencyManagement.importedProperties['slf4j.version']

라이브러리성 모듈 설정

  • 라이브러리성 모듈인데 org.springframework.boot:spring-boot-starter-web 같은 것을 포함할 경우 자동으로 bootJar가 활성화 되고 jar가 꺼지게 되는데 이렇게 되면 올바르게 라이브러리로서 기능할 수 없게 된다.
  • 이 경우 jar만 활성화해야한다.
bootJar.enabled = false
jar.enabled = true
  • 말단 배포 모듈(main 이 존재하는 모듈, web, batch 등.)은 이 값을 반대로 해야한다.(기본으로 그렇게 됨)
bootJar.enabled = true
jar.enabled = false

BootRun

profile 지정

SPRING_PROFILES_ACTIVE=<PROFILE> ./gradlew bootRun

Debug Mode

bootRun {
    if (project.hasProperty("bootDebug")) {
        jvmArgs = ["-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"]
    }
}
 
// suspend=y는 JVM이 뜰 때 Remote Debugger가 접속될 때까지 기다린다.
// 실행 후 바로 종료하는 명령행 애플리케이션의 경우 무조건 y
# -PbootDebug 프라퍼티를 지정하면 디버그 모드로 뜬다.
./gradlew bootRun -PbootDebug

Application Arguments

bootRun {
    if (project.hasProperty('args')) {
        args project.args.split(',')
    }
}

위와 같이 설정하고, 아래와 같은 형태로 실행한다.

./gradlew bootRun -Pargs=param1,param2,...

Property Override

Environment Variable 사용

SPRING_PROFILES_ACTIVE=test gradle clean bootRun

// on Windows
SET SPRING_PROFILES_ACTIVE=test
gradle clean bootRun

Gradle 에 System Property 그대로 계승

bootRun.systemProperties = System.properties

새로운 bootRun Task 로 만들어버리기

  • 새로운 bootRun 태스크를 만들고, 거기에 각종 기본 설정 추가
task bootRunDev(type: org.springframework.boot.gradle.tasks.run.BootRun, dependsOn: 'build') {
    group = 'Application'

    doFirst() {
        main = bootJar.mainClassName
        classpath = sourceSets.main.runtimeClasspath
        systemProperty 'spring.profiles.active', 'dev'
        systemProperty 'debug', 'true'
    }
}

bootJar 파일을 별도 파일로 복사하기

task copyBootJarNormalizedName(type: Copy) {
    from bootJar.archiveFile
    into "${buildDir}"
    rename { 'my.jar' }
    dependsOn bootJar
}

참조

springframework/springboot/gradle.txt · 마지막으로 수정됨: 2020/09/16 16:41 저자 kwon37xi