ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • maven Gradle
    개발/개발관련 2019. 1. 25. 11:45


    ant빌드만 사용하다가 spring하면서 maven사용하다가 Gradle이 눈에 들어옴

    Gradle이 maven보다 나중에 나온것으로 maven의 단점을 보완


    MAVEN

    Apache에서 2004년 출시

    Ant를 사용하던 개발자들의 불편함을 해소 + 부가기능 추가


    Maven은 무엇인가?

     - 빌드를 쉽게 (Making the build process easy)

     - pom.xml을 이용한 정형화된 빌드 시스템 (Providing a uniform build system)

     - 뛰어난 프로젝트 정보 제공 (Providing quality project information_

    Change log document created directly from source control

    Cross referenced sources

    Mailing lists

    Dependency list

    Unit test reports including coverage

     - 개발 가이드 라인 제공 (Providing guidelines for best practices development)

    Keeping your test source code in a separate, but parallel source tree

    Using test case naming conventions to locate and execute tests

    Have test cases setup their environment and don’t rely on customizing the build for test preparation.

     - 새로운 기능을 쉽게 설치할 수 있고 업데이트할 수 있음 (Allowing transparent migration to new features)


    GRADLE


    Ant와 Maven의 장점을 모아 2012년 출시


    Android OS의 빌드 도구로 채택 됨


    Gradle이란 무엇인가?

     - Ant처럼 유연한 범용 빌드 도구 (A very flexible general purpose build tool like Ant.)

     - Maven을 사용할 수 있는 변환 가능 컨벤션 프레임 워크 

    (Switchable, build-by-convention frameworks a la Maven. But we never lock you in!)

     - 멀티 프로젝트에 사용하기 좋음 (Very powerful support for multi-project builds.)

     - Apache Ivy에 기반한 강력한 의존성 관리 (Very powerful dependency management (based on Apache Ivy))

     - Maven과 Ivy 레파지토리 완전 지원 (Full support for your existing Maven or Ivy repository infrastructure.)

     - 원격 저장소나, pom, ivy 파일 없이 연결되는 의존성 관리 지원 

    (Support for transitive dependency management without the need for remote repositories or pom.xml and ivy.xml files.)

     - 그루비 문법 사용 (Groovy build scripts.)

     - 빌드를 설명하는 풍부한 도메인 모델 (A rich domain model for describing your build.)



    Gradle이 Maven보다 좋은점


     - Build라는 동적인 요소를 XML로 정의하기에는 어려운 부분이 많다.

    설정 내용이 길어지고 가독성 떨어짐

    의존관계가 복잡한 프로젝트 설정하기에 부적절

    상속구조를 이용한 멀티 모듈 구현

    특정 설정을 소수의 모듈에서 공유하기 위해서는 부모 프로젝트를 생성하여 상속하게 해야 함 (상속의 단점 생김)

     - Gradle은 Groovy를 사용하기 때문에, 동적인 빌드는 Groovy 스크립트로 플러그인을 호출하거나 직접 코드를 짜면 된다.

    Configuration Injection 방식을 사용해서 공통 모듈을 상속해서 사용하는 단점을 커버했다.

    설정 주입 시 프로젝트의 조건을 체크할 수 있어서 프로젝트별로 주입되는 설정을 다르게 할 수 있다.



    내가 하는 업무는 maven이 더 맞는듯



    새로운것을 배우는 리소스가 들기도 하며, 오년 십년 지속적으로 큰 프로젝트를 빌드 및 배포할 계획도 없고 단타성이 많기때문..프로젝트 투입인원도 별로없는데... 시간이 많고 널널한 프로젝트는 공부하면서 적용해보는것도 나쁘진 않지만 바쁨....ㅠ



    근데 이런게 있다는건 알아두자

















    728x90

    '개발 > 개발관련' 카테고리의 다른 글

    지도 api  (0) 2019.04.15
    스크립트에서 this  (0) 2019.01.28
    ejb? spring? spring boot까지?  (0) 2019.01.25
    log4j , slf4j 뭐지 이게  (0) 2019.01.25
    아키텍처  (0) 2019.01.25
Designed by Tistory.