본문 바로가기

Ant vs Maven vs Gradle (Comparison)

 

Ant

Maven

Gradle

Developer(s)

Apache Software Foundation

Hans Dockter, Adam Murdoch, Szczepan Faber, Peter Niederwieser, Luke Daley, Rene Gröschke, Daz DeBoer, Steve Appling

Initial release

July 19, 2000 (19 years ago)

July 13, 2004 (15 years ago)

2007 (12 years ago)

Stable release

version : 1.10.5

July 13, 2018 (11months ago)

version : 3.6.1

April 4, 2019 (48days ago)

version : 5.4.1

April 26, 2019 (1month ago)

Repository

git-wip-us.apache.org/repos/asf/ant.git

gitbox.apache.org/repos/asf?p=maven.git

github.com/gradle/gradle

Written in

Java

JavaGroovyKotlin

Type

Build tool

License

Apache License 2.0

Website

ant.apache.org

maven.apache.org 

gradle.org

 

Pros And Cons

 

Ant

Maven

Gradle

Why

 The first among "modern" build tools

 To improve upon some of the problems developers were facing when using Ant

 Gradle has flexibility with Maven's life-cycle and Ant's power and ease of use. 

Pros

 ● Control of the build process

 - Later on, as dependency management over the network became a must, Ant adopted Apache Ivy.

 ● Life-cycle

 - As long as the project is based on certain standards, with Maven one can pass through the whole life cycle with relative ease. This comes at a cost of flexibility.

 ● Had its own DSL based on Groovy.

 - Gradle build scripts tend to be much shorter and clearer than those written for Ant or Maven.

 ●  Incremental compilations for Java classes

 ●  Compile avoidance for Java

 ●  The use of APIs for incremental subtasks

 ●  A compiler daemon that also makes compiling a lot faster

 ● The use of substitution rules for compatible libraries

 ● The use of ReplacedBy rules

 ● Better metadata resolution

 ● The ability to dynamically replace project dependencies with external ones, and vice versa

Cons

 ● XML as the format to write build scripts

 - It's not a good fit for procedural programming approach

 - It tends to become unmanageably big when used with all but projects

 ● Maven has its own problems.

 - Dependencies management does not handle conflicts well between different versions of the same library (something Ivy is much better at)

 - XML as the build configuration format is strictly structured and highly standardized.

 - Customization of targets (goals) is hard. : Since Maven is focused mostly on dependency management, complex, customized build scripts are actually harder to write in Maven than in Ant.

 ● Configuration of XML continuous being big and cumbersome.

 - On bigger projects it can have hundreds of lines of code without actually doing anything "extraordinary".

 ● Gradle is virtually a newcomer, the number of developers who know Gradle inside-out might be limited.

 

 

Gradle vs Maven: Performance Comparison

● Scenario: Java Library

 : Gradle is 1.7x faster for running tests, and up to 30x faster building when the build cache is used.

 

● Scenario: small multi-project build

 : Gradle is 2-3x faster for clean builds, about 7x faster for incremental changes, and up to 14x faster when Gradle task outputs are cached.

 

● Scenario: medium multi-project build

 : Gradle is 4-5x faster for clean builds, about 40x faster for incremental changes, and up to 13x faster when Gradle task outputs are cached.

 

● Scenario: large multi-project build

 : Gradle is 3-10x faster for clean builds, about 85x faster for incremental changes, and up to 12x faster when Gradle task outputs are cached.

 

● Scenario: large monolithic application

 : Gradle is 2-3x faster for clean builds, about 7x faster for incremental changes, and up to 3x faster when Gradle task outputs are cached.

 

 

refer to Link)

● Java Build Tools: Ant vs Maven vs Gradle
https://technologyconversations.com/2014/06/18/build-tools/
● Gradle | Gradle vs Maven Comparison
https://gradle.org/maven-vs-gradle/
● Ant vs Maven vs Gradle | Baeldung
https://www.baeldung.com/ant-maven-gradle
● Gradle vs. Maven - Dzone Java
https://dzone.com/articles/gradle-vs-maven
● Gradle vs Maven: Performance Comparison
https://gradle.org/gradle-vs-maven-performance/

● Maven vs Gradle
https://bkim.tistory.com/13
● [프로그래밍 지식] 빌드 도구 : Ant, Maven, Gradle 이 뭘까?
https://jj-one-a-week.blogspot.com/2017/05/ant-maven-gradle.html
● Maven과 Gradle의 차이점
https://seonhyungjo.github.io/Maven-VS-Gradle/
● [Build Tool] ANT / MAVEN / GRADLE 비교
https://blog.naver.com/jeeyun617/220612514231
● Maven을 넘어 Gradle로 가자
http://egloos.zum.com/kwon37xi/v/4747016
● [Spring]Maven vs Gradle
https://blog.naver.com/khaicoding/221447511756
● gradle:from_maven [권남]
http://kwonnam.pe.kr/wiki/gradle/from_maven
● 10 reasons why we chose Maven over Gradle
https://www.softwareyoga.com/10-reasons-why-we-chose-maven-over-gradle/
● Why I Moved Back from Gradle to Maven
https://phauer.com/2018/moving-back-from-gradle-to-maven/
● [금융IT] Build 도구 Ant, Maven, 그리고 Gradle이란 무엇인가?
https://daitso.kbhub.co.kr/51428/
● 양파지기 - Ant, Maven, Gradle
https://www.slideshare.net/yonggeunKwon/ant-maven-gradle

'Theory > Build Tool' 카테고리의 다른 글

Gradle  (0) 2019.05.02
Maven  (0) 2019.05.01
Ant  (0) 2019.04.30