Java Build Tool?
컴파일소스코드를 사용할 수 있는 실행 파일로 변환
빌드 빌드 > 컴파일컴파일, 테스팅, 점검, 배포
소스의 컴파일을 포함해 어플리케이션을 사용할 수 있는 형태로 만들어주는 과정.소프트웨어가 응집력있는 하나의 단위로써 잘 동작하는지 확인하는 과정.
Ant, Maven, Gradle??
2002 2012 2000 2004
출처 : https://zeroturnaround.com/rebellabs/java-build-tools-part-2-a-decision-makers-comparison-of-maven-gradle-and-ant-ivy/
Ant, Maven, Gradle??
출처 : https://zeroturnaround.com/rebellabs/java-build-tools-part-2-a-decision-makers-comparison-of-maven-gradle-and-ant-ivy/
Ant
완전 개발자 친화적● 정해진 규칙, 프로세스 X● 모든 것을 개발자가 정의
● Task 중심
Ant 자체는 XML이나 Remote Repository(Dependency)를 사용할 수 없음
그래서
+
Maven
Strong convention but hard to implement custom logic
규칙, 프로세스가 뚜렷하게 정의, 그러나 맞춤 로직을 구현하기 어렵다
CoC, Convention over Configuration명확한 관습으로 인해 더 편해진다는 의미
Maven - Pom.xml
Project Object Model
프로젝트 자체와 의존성에 대한 설정 및 정보를 포함
그룹 ID, 아티펙트 ID, 버전으로 자원 식별
다양한 설정이 있음.(정해진 규격)
Gradle
개발적 친화적 + CoC
즉, Ant와 Maven의 장점만을 취함
ant : flexibility / full control / chaining of targetsivy : dependency managementmaven : convention over configuration / multimodule projects / extensibility via pluginsgant : Groovy DSL(Domain specific language) on top of Ant