NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Java Visual Studio Code - Springboot를 Gradle 빌드로 war 만드는 방법.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 비주얼 스튜디오 코드(VSCode)에서 스프링부트로 Backend를 개발하고 있는데요. Maven이 아닌 Gradle을 이용해서 프로젝트를 빌드(Build)하고 있습니다. 처음에 자바 스프링 프로젝트를 생성할 때 jar를 사용했었는데요. 아무래도 Pruduction 환경에 배포해야 하기 때문에 jar가 아닌 war를 사용해야 할거 같습니다. 우선, build.gradle 파일을 아래와 같이 수정해야 합니다.

    • apply plugin: 'war' 추가
    plugins {
    	id 'java'
    	id 'org.springframework.boot' version '3.0.2'
    	id 'io.spring.dependency-management' version '1.1.0'
    }
    
    group = 'com.bistelligence'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '17'
    apply plugin: 'war'

     

    dependencies에 톰켓을 추가 해줍니다.

    • providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' 추가
    dependencies {
    	compileOnly 'org.projectlombok:lombok'
    	developmentOnly 'org.springframework.boot:spring-boot-devtools'
    	runtimeOnly 'org.postgresql:postgresql'
    	annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
    	annotationProcessor 'org.projectlombok:lombok'
    	testImplementation 'org.springframework.boot:spring-boot-starter-test'
    	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    	implementation 'org.springframework.boot:spring-boot-starter-web'
    	implementation 'com.fasterxml.jackson.core:jackson-databind:2.10.2'
    	implementation 'com.github.miwurster:spring-data-influxdb:1.8'
    	implementation 'org.influxdb:influxdb-java:2.17'
    	implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'
    	implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.14.2'
    	implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.14.2'
    	implementation group: 'org.mybatis', name: 'mybatis', version: '3.5.11'
    	implementation group: 'org.mybatis', name: 'mybatis-spring', version: '3.0.1'
    	implementation group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', version: '3.0.1'
    	implementation group: 'org.hibernate', name: 'hibernate-validator', version: '6.1.1.Final'
    	implementation 'com.google.code.gson:gson:2.9.0'
    	providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
    }

     

    윈도우 환경이기 때문에 아래와같이 그래들 빌드를 실행해줍니다.

    PS D:\ngmsoftware\editor\backend> ./gradlew build

     

    빌드가 정상적으로 성공 했습니다.

    BUILD SUCCESSFUL in 1s
    7 actionable tasks: 7 up-to-date
    PS D:\ngmsoftware\editor\backend>   

     

    프로젝트의 build/libs 폴더에 보면 war 파일이 생성된걸 확인할 수 있습니다.

    FuLlUhk.png

     

     

    서버가 정상적으로 실행되는지 확인하기 위해 build/libs 폴더로 이동합니다.

    PS D:\ngmsoftware\editor\backend> cd build/libs                                                                                                                                                        
    PS D:\ngmsoftware\editor\backend\build\libs>   

     

    자바 프로그램을 실행하세요.

    PS D:\ngmsoftware\editor\backend\build\libs> java -jar backend-0.0.1-SNAPSHOT.war

    EkjfE5X.png

     

     

    서버가 정상적으로 실행되었습니다. jar를 사용해도 되지만, 프로덕션 환경이 주로 톰켓 서버 위에서 실행되다보니 war로 배포하는게 좋은 선택일겁니다. 대부분의 설명이 Maven으로 되어 있어서 Gradle을 사용하시는 분들은 설정에 어려움이 있을텐데요. 사실, 단순히 이 내용만으로 해결되지 않을수도 있습니다. 몇몇 이슈가 있어서 코드를 수정해야 할수도 있거든요^^

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.