ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Maven Gradle Ant - 자바 빌드도구
    도구/빌드도구 2022. 1. 8. 01:59

    빌드란 ?

    소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 또는 결과물이다.

    Java 코드, xml,jpg,jar,properties 파일을 JVM이나 톰캣같은 WAS가 인식할 수 있는 구조로 패키징 하는 결과물

    이라 할 수 있겠다.

     

    빌드 도구란?

    소스코드에서 어플리케이션 생성을 자동화 하기 위한 프로그램이다.

    빌드는 코드를 사용 혹은 실행 가능한 형태로 컴파일 , 링킹, 패키징 하는 것을 포함한다.

    기본적으로 빌드 자동화는 아래와 같은 정형화된 다양한 작업을 스크립팅하거나 자동화 하는 행위이다.

    1 - 종속성 다운로드

    2 - 소스코드를 바이너리 코드로 컴파일

    3 - 바이너리 코드를 패키징

    4 - 테스트 실행

    5 - 프로덕션 시스템에 배포

     

    Maven

    Apache Ant 대안으로 만들어졌으며, 필요한 라이브러리를 pom.xml에 정의 해놓으면  해당 라이브러리 뿐

    아니라, 해당 라이브러리에 종속된 다른 라이브러리까지 관리하여 네트워크로 다운받게 해준다.

    중앙저장소(아파치재단) 의 일종의 파일서버에서 의존성 관리를 해준다.

    정해진 라이프사이클에 의해 작업을 수행하며, 전반적인 프로젝트 관리 기능이 있다.

    라이브러리가 서로 종속할 경우 XML이 복잡해지며

    계층적 데이터 표현하기엔 좋지만 , 플로우나 조건부 상황을 표현하기는 어렵다.

    맞춤화된 로직 실행이 어렵다.

    Gradle

    오픈소스기반의 빌드 자동화 도구로 Groovy 기반 DSL(Domain-Specific Language)로 작성한다.

    Build- by - convention을 바탕으로 한다 (스크립트 규모가 작고 읽기 쉽다.)

    Multi프로젝트의 빌드를 지원하기 위해 설계됬다.

    설정 주입 방식이다.(Configuration Injection)

    초기 프로젝트 설정에 드는 시간을 절약할 수 있고, 기존의 Maven이나 Ivy등과 같은 빌드 도구들과도

    호환이 가능하다.

     

     

    Ant

    프로젝트에 대한 XML 기반 빌드 스크립트 개발한다.

    형식적인 규칙이 없다. (정확한 위치 알려주고 Target 과 Dependency를 이용해 모델링한다.)

    명확한 빌드 절차 정의가 필요하다.

    생명주기가 없기 때문에 target에 대한 의존 관계와 일련의 작업을 정의해 주어야 한다.

    유연성은 높으나 프로젝트가 복잡해질경우 각각의 Build 과정을 이해하기 어렵다.

    XML, Remote Repository를 가져올 수 없다. (Ivy 도입)

    스크립트 재사용이 어렵다.

     

     

Designed by Tistory.