[Toy Project] 프로젝트 빌드> Fat-jar 생성🍔

최지나·2024년 1월 3일
3

제품 재고 관리 시스템에 필요한 API 생성이 1차로 끝이 났다🔥🔥
그래서 frontend 완성 후에 배포를 위한 Fat-jar을 생성하는 스크립트를 생성해보았다


Fat-Jar이란?

모든 의존성에 있는 라이브러리가 자체 포함되어있는 jar 파일. java -jar 명령어로 단독 실행 가능

  • 쉽게 말하자면 프론트엔드와 의존성, 리소스들을 다 포함한 jar이다
  • 배포 및 실행 단순화라는 장점이 있고 도커 환경에서 배포할 때 유용하다

Fat-jar 생성 스크립트

  • 폴더구조
- backend
  ㄴ target
  ㄴ src
- frontend
  ㄴ dist
  • package.sh
#!/bin/bash

cd backend
./mvnw clean

cd ../frontend
npm run build

mkdir -p ../backend/target/classes/static

cp -r ./dist/* ../backend/target/classes/static

cd ../backend
./mvnw package -DskipTests
  • 스크립트 설명
  1. Maven Wrapper를 사용하여 이전에 빌드한 파일들을 제거
./mvnw clean

  1. Node.js의 npm 스크립트를 사용하여 프론트엔드를 빌드
npm run build
  1. dist 디렉토리 하에 빌드된 프론트엔드의 파일들을 백엔드 static 경로로 복사
cp -r ./dist/* ../backend/target/classes/static
  1. Maven Wrapper를 사용하여 애플리케이션을 빌드 (-DskipTests 옵션을 통해 테스트를 실행하지 않고 빌드)
./mvnw package -DskipTests

  • 이떄 jar 파일의 이름은 pom.xml에 설정한 이름으로 지어진다

    <groupId>com.madeg</groupId>
    <artifactId>logistics</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>logistics</name>
  • 스크립트 실행
    • fat-jar 파일이 생성된다
sh package.sh
  • 생성된 fat-jar 실행
$ java -jar ./backend/target/{jarName}.jar

  • localhost:{backendPort}/ 로 접속

profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

0개의 댓글