Java - 빌드관리도구(ft. jar, war)

빌드 관리 도구는 라이브러리 의존성 관리 및 주입하고 프로젝트 내 작성한 xml이나 java 파일들을 패키징하는 과정을 담당한다. 어플리케이션 빌드 과정에 필요한 전반적인 부분을 모두 처리해주어 빌드 자동화 도구라고도 불린다. 이러한 빌드 관리 도구를 통해 JVM이나 WAS가 인식가능한 jar 또는 war 파일을 만들어낼 수 있다.(안드로이드의 경우 aab나 apk 파일로 만들어줌)


빌드 관리 도구의 역할

  1. Dependency - 외부 라이브러리들의 의존성을 관리하고 다운로드
  2. Compile - java나 kotlin 파일을 바이트코드로 만들어줌
  3. Test - 유닛테스트 코드실행 지원
  4. Packaging - 코드들을 패키징하여 하나의 압축파일로 만들어줌(jar, war, aab, apk 등)
  5. Deploy,Run - 만들어진 패키지를 실행


빌드 관리 도구에는 대표적으로 maven과 gradle이 존재한다. 과거에는 maven을 많이 사용하였지만 최근 프로젝트에서는 gradle을 많이 사용하며 더 나아가 kotlin 문법으로 gradle을 작성하는 추세라고 한다.

Maven

  • xml 이용하여 작성
  • 라이프사이클이라고 불리는 정의된 순서(celan, compile, package 등)로 빌드된다.
  • 외부저장소에 라이브러리, 플러그인을 다운로드 → 로컬시스템의 캐시에 저장


gradle

  • groovy 문법을 사용(kotlin 문법으로 가능 - gradle.kts)
  • xml 코드에 비해 뛰어난 가독성
  • 빠른 빌드속도
    • 작업 의존성 그래프를 기반으로 병렬 처리
    • 빌드된 파일 캐시
    • 점진적 빌드 - 바뀐 파일들만 빌드
  • maven 저장소에서 플러그인 import 가능
  • 복잡한 대규모 프로젝트에서 효과적으로 활용가능


+ Spring 배포파일

앞선 설명에서 빌드 관리 도구를 통해 패키징된 압축파일이 만들어진다고 하였다. 이 중 Spring 프로젝트에서는 보통 jar와 war파일로 패키징된다.

jar
Java 어플리케이션을 패키징한 압축 형식이다. WAS 또한 포함시킬 수 있고 독립적으로 실행될 수 있는 파일이다. WAS가 내장된 Spring boot 프로젝트는 보통 jar 파일로 패키징한다.

war
Java 웹 어플리케이션을 패키징한 압축 형식이다. 웹 관련 리소스와 웹 어플리케이션을 실행하는데 필요한 구성 요소를 포함한다. WAS(Tomcat, JBoss) 등에 배포하여 실행시킬 수 있다.

카테고리:

업데이트:

댓글남기기