SlideShare a Scribd company logo
1 of 17
Download to read offline
Ant & Maven & Gradle
양파지기 스터디 모임
권용근
Ant, Maven, Gradle??
Maven, Gradle, Ant, Ivy
=
Java Build Tool
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 - 핵심
의존성(Dependency) 라이프사이클
플러그인(모조) Pom.xml
Maven - 의존성
라이브러리 다운로드 자동(원격 저장소로부터)
Maven - Plugin, Mojo
Maven은 Plugin을 실행하는 프레임워크
Goal(Mojo)
들의 집합
Maven - 라이프사이클
Goal들의 단계를 정의
하나의 Goal은 하나 이상의
라이프사이클에 속하게 됨.
라이프사이클은 단계일 뿐 실제
실행되는 것은 플러그인.
Maven - Pom.xml
Project Object Model
프로젝트 자체와 의존성에 대한 설정 및 정보를 포함
그룹 ID, 아티펙트 ID, 버전으로 자원 식별
다양한 설정이 있음.(정해진 규격)
출처 : http://www.techjava.de/topics/tag/maven/
Maven
Gradle
개발적 친화적 + CoC
즉, Ant와 Maven의 장점만을 취함
ant : flexibility / full control / chaining of targets
ivy : dependency management
maven : convention over configuration / multimodule projects / extensibility via plugins
gant : Groovy DSL(Domain specific language) on top of Ant
Gradle - 개발자 친화적 - Task
Groovy(JVM Language) DSL
Gradle - CoC-Task
Gradle - 기타 장점
● Gradle Wrapper 제공
● 상속이 아닌 주입
● 다른 빌드툴 호환
● 멀티 프로젝트를 간단히 작성할 수 있음

More Related Content

What's hot

안드로이드를 위한 Gradle 맛들이기
안드로이드를 위한 Gradle 맛들이기안드로이드를 위한 Gradle 맛들이기
안드로이드를 위한 Gradle 맛들이기DongHwan Yu
 
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java ProjectJi-Woong Choi
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자Sewon Ann
 
Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발지수 윤
 
무식하게 배우는 gradle
무식하게 배우는 gradle무식하게 배우는 gradle
무식하게 배우는 gradleJi Heon Kim
 
gradle로 안드로이드 앱 빌드하기
gradle로 안드로이드 앱 빌드하기gradle로 안드로이드 앱 빌드하기
gradle로 안드로이드 앱 빌드하기Manjong Han
 
자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅Yoonsung Jung
 
빌드교육자료 작성중
빌드교육자료 작성중빌드교육자료 작성중
빌드교육자료 작성중Sukjin Yun
 
[세미나] 20160520 Gradle
[세미나] 20160520 Gradle[세미나] 20160520 Gradle
[세미나] 20160520 GradleSanghoon Yoon
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodedpTablo
 
Java, android 스터티5
Java, android 스터티5Java, android 스터티5
Java, android 스터티5Heejun Kim
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationDonghyun Seo
 
Enterprise Java web Deployment Strategy
Enterprise Java web Deployment StrategyEnterprise Java web Deployment Strategy
Enterprise Java web Deployment StrategySukjin Yun
 
[오픈소스컨설팅] DevOps 체험교육 소개
[오픈소스컨설팅] DevOps 체험교육 소개[오픈소스컨설팅] DevOps 체험교육 소개
[오픈소스컨설팅] DevOps 체험교육 소개Brian HAN 한진규
 
Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅
Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅
Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅Atlassian 대한민국
 
Dagger 2.0 을 활용한 의존성 주입
Dagger 2.0 을 활용한 의존성 주입Dagger 2.0 을 활용한 의존성 주입
Dagger 2.0 을 활용한 의존성 주입승용 윤
 

What's hot (19)

Maven의 이해
Maven의 이해Maven의 이해
Maven의 이해
 
안드로이드를 위한 Gradle 맛들이기
안드로이드를 위한 Gradle 맛들이기안드로이드를 위한 Gradle 맛들이기
안드로이드를 위한 Gradle 맛들이기
 
Gradle guide
Gradle guideGradle guide
Gradle guide
 
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자
 
Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발
 
무식하게 배우는 gradle
무식하게 배우는 gradle무식하게 배우는 gradle
무식하게 배우는 gradle
 
gradle로 안드로이드 앱 빌드하기
gradle로 안드로이드 앱 빌드하기gradle로 안드로이드 앱 빌드하기
gradle로 안드로이드 앱 빌드하기
 
자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅
 
빌드교육자료 작성중
빌드교육자료 작성중빌드교육자료 작성중
빌드교육자료 작성중
 
[세미나] 20160520 Gradle
[세미나] 20160520 Gradle[세미나] 20160520 Gradle
[세미나] 20160520 Gradle
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCode
 
Java, android 스터티5
Java, android 스터티5Java, android 스터티5
Java, android 스터티5
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Enterprise Java web Deployment Strategy
Enterprise Java web Deployment StrategyEnterprise Java web Deployment Strategy
Enterprise Java web Deployment Strategy
 
[오픈소스컨설팅] DevOps 체험교육 소개
[오픈소스컨설팅] DevOps 체험교육 소개[오픈소스컨설팅] DevOps 체험교육 소개
[오픈소스컨설팅] DevOps 체험교육 소개
 
Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅
Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅
Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅
 
deview2014
deview2014deview2014
deview2014
 
Dagger 2.0 을 활용한 의존성 주입
Dagger 2.0 을 활용한 의존성 주입Dagger 2.0 을 활용한 의존성 주입
Dagger 2.0 을 활용한 의존성 주입
 

Similar to 양파지기 - Ant, Maven, Gradle

maven 소개
maven 소개maven 소개
maven 소개Suan Lee
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재Hankyo
 
메이븐 기본 이해
메이븐 기본 이해메이븐 기본 이해
메이븐 기본 이해중선 곽
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기SeungYong Baek
 
Gradle 한번 살펴보기
Gradle 한번 살펴보기Gradle 한번 살펴보기
Gradle 한번 살펴보기Junseo Youn
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발Jinuk Kim
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST_NHNent
 
안드로이드 빌드 with Gradle
안드로이드 빌드 with Gradle안드로이드 빌드 with Gradle
안드로이드 빌드 with Gradlehaesunglee5
 
스프링 프로젝트 시작하기
스프링 프로젝트 시작하기스프링 프로젝트 시작하기
스프링 프로젝트 시작하기Ashal aka JOKER
 
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GDG Korea
 
practical perf testing - d2startup
practical perf testing - d2startuppractical perf testing - d2startup
practical perf testing - d2startupJunHo Yoon
 
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Nanha Park
 
TechTalk - 개발환경설정 이야기
TechTalk - 개발환경설정 이야기TechTalk - 개발환경설정 이야기
TechTalk - 개발환경설정 이야기Daesung Park
 
원모먼트 Vue js 적용기
원모먼트 Vue js 적용기원모먼트 Vue js 적용기
원모먼트 Vue js 적용기우현 김
 
Mastering devops with oracle 강인호
Mastering devops with oracle 강인호Mastering devops with oracle 강인호
Mastering devops with oracle 강인호Inho Kang
 
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍ymtech
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyondJae Sung Park
 

Similar to 양파지기 - Ant, Maven, Gradle (20)

maven 소개
maven 소개maven 소개
maven 소개
 
okspring3x
okspring3xokspring3x
okspring3x
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
메이븐 기본 이해
메이븐 기본 이해메이븐 기본 이해
메이븐 기본 이해
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
Gradle 한번 살펴보기
Gradle 한번 살펴보기Gradle 한번 살펴보기
Gradle 한번 살펴보기
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
 
안드로이드 빌드 with Gradle
안드로이드 빌드 with Gradle안드로이드 빌드 with Gradle
안드로이드 빌드 with Gradle
 
스프링 프로젝트 시작하기
스프링 프로젝트 시작하기스프링 프로젝트 시작하기
스프링 프로젝트 시작하기
 
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
 
practical perf testing - d2startup
practical perf testing - d2startuppractical perf testing - d2startup
practical perf testing - d2startup
 
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
 
TechTalk - 개발환경설정 이야기
TechTalk - 개발환경설정 이야기TechTalk - 개발환경설정 이야기
TechTalk - 개발환경설정 이야기
 
원모먼트 Vue js 적용기
원모먼트 Vue js 적용기원모먼트 Vue js 적용기
원모먼트 Vue js 적용기
 
Android QA Process
Android QA ProcessAndroid QA Process
Android QA Process
 
Mastering devops with oracle 강인호
Mastering devops with oracle 강인호Mastering devops with oracle 강인호
Mastering devops with oracle 강인호
 
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 

양파지기 - Ant, Maven, Gradle

  • 1. Ant & Maven & Gradle 양파지기 스터디 모임 권용근
  • 2. Ant, Maven, Gradle?? Maven, Gradle, Ant, Ivy = Java Build Tool
  • 3. Java Build Tool? 컴파일 소스코드를 사용할 수 있는 실행 파일로 변환 빌드 빌드 > 컴파일 컴파일, 테스팅, 점검, 배포 소스의 컴파일을 포함해 어플리케이션을 사용할 수 있는 형태로 만들어주는 과정. 소프트웨어가 응집력있는 하나의 단위로써 잘 동작하는지 확인하는 과정.
  • 4. 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/
  • 5. Ant, Maven, Gradle?? 출처 : https://zeroturnaround.com/rebellabs/java-build-tools-part-2-a-decision-makers-comparison-of-maven-gradle-and-ant-ivy/
  • 6. Ant 완전 개발자 친화적 ● 정해진 규칙, 프로세스 X ● 모든 것을 개발자가 정의 ● Task 중심 Ant 자체는 XML이나 Remote Repository(Dependency)를 사용할 수 없음 그래서 +
  • 7. Maven Strong convention but hard to implement custom logic 규칙, 프로세스가 뚜렷하게 정의, 그러나 맞춤 로직을 구현하기 어렵다 CoC, Convention over Configuration 명확한 관습으로 인해 더 편해진다는 의미
  • 8. Maven - 핵심 의존성(Dependency) 라이프사이클 플러그인(모조) Pom.xml
  • 9. Maven - 의존성 라이브러리 다운로드 자동(원격 저장소로부터)
  • 10. Maven - Plugin, Mojo Maven은 Plugin을 실행하는 프레임워크 Goal(Mojo) 들의 집합
  • 11. Maven - 라이프사이클 Goal들의 단계를 정의 하나의 Goal은 하나 이상의 라이프사이클에 속하게 됨. 라이프사이클은 단계일 뿐 실제 실행되는 것은 플러그인.
  • 12. Maven - Pom.xml Project Object Model 프로젝트 자체와 의존성에 대한 설정 및 정보를 포함 그룹 ID, 아티펙트 ID, 버전으로 자원 식별 다양한 설정이 있음.(정해진 규격)
  • 14. Gradle 개발적 친화적 + CoC 즉, Ant와 Maven의 장점만을 취함 ant : flexibility / full control / chaining of targets ivy : dependency management maven : convention over configuration / multimodule projects / extensibility via plugins gant : Groovy DSL(Domain specific language) on top of Ant
  • 15. Gradle - 개발자 친화적 - Task Groovy(JVM Language) DSL
  • 17. Gradle - 기타 장점 ● Gradle Wrapper 제공 ● 상속이 아닌 주입 ● 다른 빌드툴 호환 ● 멀티 프로젝트를 간단히 작성할 수 있음