728x90
반응형

Spring Boot 프로젝트를 빌드를 하기위해 maven을 사용했는데 시간이 많이 들었다.

 

평상시엔 별 탈 없이 사용했지만 긴급상황에서 빠르게 배포가 필요한 경우

 

너무 오래 걸려 빌드를 빠르게 하기 위해 Gradle로 전환할 필요를 느꼈다.

 

그래서 찾아보니 다음과 같이 하면 간단하게 maven에서 gradle로 전환할 수 있었다.

$ gradle init

변환을 하면 build.gradle, gradelw, settings.gradle 등이 만들어진다.

 

build.gradle를 보면 repositoriesmavenLocal()이 기본으로 설정돼있는데

 

외부 라이브러리를 호출하기 위해 mavenCentral로 변경했다.(다른 걸로 해도 된다.)

 

여기까지는 쉽게 됐는데 실행 가능한 jar 파일을 만드는 게 어려웠다.

 

우선 jar로 만들기 위해 build.gradlejar 태스크를 추가했다.

 

그리고 gradle build로 빌드를 하고 jar를 실행했지만 클래스를 찾지 못한다는 에러가 발생했다.

 

검색해보니 Spring Boot의 경우 plunginsorg.springframework.boot를 추가해야 했다.

plugins {
    id 'java'
    id 'maven-publish'
    id 'org.springframework.boot' version '2.2.6.RELEASE'
}

repositories {
    mavenCentral()
    maven {
        url = 'https://repo.spring.io/milestone'
    }

    maven {
        url = 'http://repo.maven.apache.org/maven2'
    }
}

jar {
    manifest {
        attributes 'Main-Class': 'com.my.Application'
    }

    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

위와 같이 build.gradle를 수정하고 만든 jar를 실행하니 잘 동작하는 것을 확인할 수 있었다.

 

org.springframework.boot의 버전은 자신의 프로젝트에서 사용한 버전을 쓰면 된다.

 

참고 문헌

  1. https://docs.gradle.org/current/userguide/declaring_repositories.html

  2. https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/

  3. https://www.baeldung.com/gradle-fat-jar

반응형

+ Recent posts