Maven & Gradle

HyeBin, Park·2022년 1월 15일
0
post-thumbnail

Build Tool

  • Build ?
    : 프로젝트를 진행하면서 작성한 소스코드, xml, properties, war 등등.. 파일이나 자원등을 jvm이나 WAS가 인식할 수 있는 패키징하는 과정 및 결과물
  • Build Tool ?
    : Build 과정을 자동화하기 위한 소프트웨어

Maven

Apache Maven은 자바용 프로젝트 관리 도구로 아파치앤트의 대안으로 만들어졌다. 아파치 라이선스로 배포되는 오픈 소스 소프트웨어이다. - wiki

#아파치 앤트는 라이브러리 종속 관계가 관
리되지 않음

<예제>

<groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0</version>

  <!-- library dependencies -->

  <dependencies>
    <dependency>
  • 프로젝트를 진행하면서 사용하는 라이브러리들의 버전과 종속관계까지 모두 관리해준다.

  • maven은 Spring project에서 pom.xml 로 xml을 사용한다.

  • 프로젝트의 전체적인 라이프사이클을 관리하는 도구 [라이프서클이 잘 설명되어 있음](


    Gradle

  • Groovy를 이용한 빌드 자동화시스템으로 Groovy와 유사한 도메인 언어를 채용하였으며, 현재 안드로이드 스튜디오의 공식 빌드 시스템이다.
    java, C/C++, 파이썬 등과 같은 여러 가지 언어를 지원한다. -wiki

  • build.gradle 로 사용한다.

  • 라이브러리 버전과 의존성 관리

    Groovy

  • 자바에 파이썬, 루비, 스몰토크등의 특징을 더한 도적 객체 지향 프로그래밍 언어이다. -wiki

  • jvm에서 작동하는 스크립트언어로, 자바의 문법체계를 계승하여 발전 시켰다. => 더욱 간결하고 쉽다.

  • 컴파일할 필요없이 스크립트 파일 그대로 실행시킬 수 있다.

    <자바코드>

public class StdJava
{
  public static void main(String argv[])
  {
    for (String it : new String [] {"Rod", "Carlos", "Chris"})
      if (it.length() <= 4)
        System.out.println(it);
  }
}

<그루비코드>

["Rod", "Carlos", "Chris"].findAll{it.size() <= 4}.each{println it}

Maven과 Gradle

  • maven은 xml언어를 사용하여 프로젝트가 커질수록 스크립트의 내용이 길어지고 가독성이 떨어진다.
  • gradle은 프로젝트가 커져도 maven보다 훨씬 적은 양의 스크립트로 짧고 간결하게 작성할 수 있다.
  • Gradle이 Maven 보다 빠르다.

[출처]

0개의 댓글