ݺߣ

ݺߣShare a Scribd company logo
Introduction Gradle
Technical
Index
• Build-Tool
• Evolution & 2016 Usage Status Build
Tool
• Gradle?
• Gradle의 주요 특징
• Gradle 장,단점
• Ant, Maven, Gradle
• Maven, Gradle Build Script
• Links
• 빌드 ? 작성코드 + 의존성 라이브러리 → 컴파일 Compile → 패키징 Packaging
• 빌드 툴 ? 소스코드 컴파일 / 테스트 / 패키징 / 배포 / 문서화 하는 작업을 지원하는 툴
Java Build Tool
Build Tool
Evolution & 2016 Usage Status Build Tool
• 2000 - Ant
• 2002 - Maven
• 2004 - Ivy
• 2012 - Gradle
2016년 Java 빌드 툴 사용 현황
• Maven의 비율의 가장 높음
• 신규 프로젝트의 경우 대다수 Gradle 사용
참조 : https://zeroturnaround.com/rebellabs/java-tools-and-technologies-landscape-2016/
참조 : https://zeroturnaround.com/rebellabs/java-build-tools-part-2-a-decision-makers-comparison-of-maven-gradle-and-ant-ivy/
Gradle?
Gradle은 범용 빌드 툴 - Java, Java web, C, C++, Android … 20여 가지 언어 지원
• Groovy 언어 기반 (JVM 기반, 자바+파이썬+루비+스몰토크를 더한 동적 객체 지향 프
로그래밍 언어)
• Ant와 Maven을 계승, Ant(유연함) + Maven(체계성) + 스크립트 언어 (Groovy)
• Ant 와 Maven 빌드 툴 모두 가지고 있었던 가장 큰 단점인 XML 에 대한 이슈 Groovy
언어를 사용해 해결 (XML을 사용하지 않음)
∴ Gradle == 개발자 친화적(자유도) + CoC(Convention over Configuration)
- 명확한 관습으로 인해 더 편해진다.
Gradle의 주요 특징
• Groovy(JVM Language)를 기반으로 한 DSL (Domain Specific Language)
• Maven처럼 관례(Convention)에 기반한 프레임워크, 그러면서도 그 관례를 마음껏 바꿀 수 있다
• 다양하고 자유도가 높은 API 제공
• 심플한 프로젝트에서 거대한 엔터프라이즈 환경의 멀티 프로젝트 빌드까지 지원하는 확장성
• Ant 태스크와 빌드가 기본적으로 탑재 (기존에 작성된 Ant Task를 Gradle에서 직접 호출 가능)
• 기존의 어떠한 구조의 프로젝트라도 Gradle로의 통합 및 쉬운 마이그레이션
• 원격 레퍼지토리나 pom.xml, ivy.xml 도움 없이 이행적(transitive) 의존성 관리를 지원
• Gradle Wrapper를 사용하여 Gradle 이 설치되지 않은 환경에서 빌드 실행 가능
• Groovy 기반의 빌드 스크립트를 사용함으로써 third party libraries를 포함시키고 커스트마이즈 할 수 있다.
• 아파치 2.0 라이선스 (오픈소스 제공)
• Build scrip는 xml이 아닌 Groovy로 작성
Gradle 장, 단점
1. 간결함 : xml을 사용하지 않기때문에 장황하지 않음.
2. 속도 : 성능 향상을 위해 증분 빌드, 작업 결과 캐싱, 증분 하위 작업, 병렬 실행 등을 제공.
3. 멀티프로젝트 : 하나의 repository내에 여러 개의 하위 프로젝트 구성 가능. (상속x, 주입o)
4. 유연성 + 확장성 : 직접 Task 구현과 플러그인을 만들어서 기능을 추가 할 수 있음.
5. 플러그인 생태계 : 플러그인 관리를 위한 허브가 있고 그 안에는 수많은 플러그인이 존재.
• 장점
• 단점
1. Maven보다 컴파일/빌드 속도가 느리다.
2. IDE의 지원이 다소 미흡
3. 메모리 사용량이 많다. (권장 메모리 8GB, 4GB 메모리 사용시 Out of memory 발생 가능)
4. 이행적 의존성(transitive dependency) 충돌로 인해 자신도 모르게 지정한 것보다 높은
버전의 라이브러리를 받아오는 현상이 있음.(단점 이라기 보다는 Gradle의 의도)
Ant, Maven, Gradle (eclipse project directory structure)
• Ant • Maven • Gradle
Maven, Gradle Build Script
Maven의 pom.xml과 Gradle의 build.gradle
• Maven의 경우 사용자 지정 빌드 스크립트를 사용하기
힘들고 프로젝트의 규모가 커질 수록 코드라인이 길어짐
• Gradle의 Build Script는 Maven 보다 짧고 가독성이 좋음
Links
• https://gradle.org/
• https://zeroturnaround.com/rebellabs/java-tools-and-technologies-landscape-2016/
• /ihoneymon/gradle-27152839
• /sup2rior/gradle-guide-v-01-31412469
• https://www.slipp.net/wiki/pages/viewpage.action?pageId=11632748
• /ssuser59a869/java-build-tool
• https://medium.com/@goinhacker/%EC%9A%B4%EC%98%81-
%EC%9E%90%EB%8F%99%ED%99%94-1-%EB%B9%8C%EB%93%9C-
%EC%9E%90%EB%8F%99%ED%99%94-by-gradle-7630c0993d09

More Related Content

What's hot (20)

PDF
gradle로 안드로이드 앱 빌드하기
Manjong Han
PDF
양파지기 - Ant, Maven, Gradle
yong geun Kwon
PPTX
Gradle 사용하기
jiseob kim
PDF
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Sung-tae Ryu
PDF
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
Ji-Woong Choi
PPTX
Modern Android App Development
Chi Hwan Choi
PDF
ant로 안드로이드 앱을 자동으로 빌드하자
Sewon Ann
PPTX
Android Webkit Browser Plug-in
Seiyon Lee
PDF
우아테크세미나-우아멀티모듈
용근 권
PPTX
[자바카페] 미니 세미나 ProGuard
Chi Hwan Choi
PPTX
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
SangHoon Han
PDF
Java Build Tool
용근 권
PDF
그루비로 안드로이드 앱 개발하기
Sangkyoon Nam
PDF
Gradle 한번 살펴보기
Junseo Youn
PDF
이클립스 플랫폼
Kenu, GwangNam Heo
PPTX
2022 백엔드 멘토링 자료
ssuserf875e6
PDF
우아Ә소스
Jun Ho Lee
PDF
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
NAVER Engineering
PDF
2020년 12월 20일 개발자 이야기
Jay Park
PDF
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
지원 정
gradle로 안드로이드 앱 빌드하기
Manjong Han
양파지기 - Ant, Maven, Gradle
yong geun Kwon
Gradle 사용하기
jiseob kim
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Sung-tae Ryu
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
Ji-Woong Choi
Modern Android App Development
Chi Hwan Choi
ant로 안드로이드 앱을 자동으로 빌드하자
Sewon Ann
Android Webkit Browser Plug-in
Seiyon Lee
우아테크세미나-우아멀티모듈
용근 권
[자바카페] 미니 세미나 ProGuard
Chi Hwan Choi
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
SangHoon Han
Java Build Tool
용근 권
그루비로 안드로이드 앱 개발하기
Sangkyoon Nam
Gradle 한번 살펴보기
Junseo Youn
이클립스 플랫폼
Kenu, GwangNam Heo
2022 백엔드 멘토링 자료
ssuserf875e6
우아Ә소스
Jun Ho Lee
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
NAVER Engineering
2020년 12월 20일 개발자 이야기
Jay Park
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
지원 정

Similar to Gradle 소개 (18)

PPTX
Backend Master | 3.1.4 Build - Java build tool - Maven/Gradle Build Lifecycle
Kyunghun Jeon
PDF
메이븐 기본 이해
중선 곽
PPTX
Backend Master | 3.1.3 Build - Java build tool - Gradle
Kyunghun Jeon
PPTX
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
ymtech
PDF
웹 IDE 비교
Junyoung Lee
PPTX
Backend Master | 3.1.2 Build - Java build tool - Maven
Kyunghun Jeon
PPTX
Maven
Suan Lee
PPTX
maven 소개
Suan Lee
PPTX
안드로이드 빌드 with Gradle
haesunglee5
PPTX
Maven의 이해
Sung Jae Park
PPTX
Spring Boot + React + Gradle in VSCode
dpTablo
PPTX
빌드교육자료 작성중
Sukjin Yun
PDF
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
Ubuntu Korea Community
PDF
(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막
Jay Park
PDF
okspring3x
Kenu, GwangNam Heo
PPT
Windows에서 go+eclipse 개발환경 구축
Jaehoon Kim
PPTX
Maven
성욱 전
PPTX
N02 app engineseminar
Sun-Jin Jang
Backend Master | 3.1.4 Build - Java build tool - Maven/Gradle Build Lifecycle
Kyunghun Jeon
메이븐 기본 이해
중선 곽
Backend Master | 3.1.3 Build - Java build tool - Gradle
Kyunghun Jeon
20170310 tech day-1st-maven을 이용한 프로그램 빌드-박준홍
ymtech
웹 IDE 비교
Junyoung Lee
Backend Master | 3.1.2 Build - Java build tool - Maven
Kyunghun Jeon
maven 소개
Suan Lee
안드로이드 빌드 with Gradle
haesunglee5
Maven의 이해
Sung Jae Park
Spring Boot + React + Gradle in VSCode
dpTablo
빌드교육자료 작성중
Sukjin Yun
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
Ubuntu Korea Community
(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막
Jay Park
Windows에서 go+eclipse 개발환경 구축
Jaehoon Kim
N02 app engineseminar
Sun-Jin Jang
Ad

Gradle 소개

  • 2. Index • Build-Tool • Evolution & 2016 Usage Status Build Tool • Gradle? • Gradle의 주요 특징 • Gradle 장,단점 • Ant, Maven, Gradle • Maven, Gradle Build Script • Links
  • 3. • 빌드 ? 작성코드 + 의존성 라이브러리 → 컴파일 Compile → 패키징 Packaging • 빌드 툴 ? 소스코드 컴파일 / 테스트 / 패키징 / 배포 / 문서화 하는 작업을 지원하는 툴 Java Build Tool Build Tool
  • 4. Evolution & 2016 Usage Status Build Tool • 2000 - Ant • 2002 - Maven • 2004 - Ivy • 2012 - Gradle 2016년 Java 빌드 툴 사용 현황 • Maven의 비율의 가장 높음 • 신규 프로젝트의 경우 대다수 Gradle 사용 참조 : https://zeroturnaround.com/rebellabs/java-tools-and-technologies-landscape-2016/ 참조 : https://zeroturnaround.com/rebellabs/java-build-tools-part-2-a-decision-makers-comparison-of-maven-gradle-and-ant-ivy/
  • 5. Gradle? Gradle은 범용 빌드 툴 - Java, Java web, C, C++, Android … 20여 가지 언어 지원 • Groovy 언어 기반 (JVM 기반, 자바+파이썬+루비+스몰토크를 더한 동적 객체 지향 프 로그래밍 언어) • Ant와 Maven을 계승, Ant(유연함) + Maven(체계성) + 스크립트 언어 (Groovy) • Ant 와 Maven 빌드 툴 모두 가지고 있었던 가장 큰 단점인 XML 에 대한 이슈 Groovy 언어를 사용해 해결 (XML을 사용하지 않음) ∴ Gradle == 개발자 친화적(자유도) + CoC(Convention over Configuration) - 명확한 관습으로 인해 더 편해진다.
  • 6. Gradle의 주요 특징 • Groovy(JVM Language)를 기반으로 한 DSL (Domain Specific Language) • Maven처럼 관례(Convention)에 기반한 프레임워크, 그러면서도 그 관례를 마음껏 바꿀 수 있다 • 다양하고 자유도가 높은 API 제공 • 심플한 프로젝트에서 거대한 엔터프라이즈 환경의 멀티 프로젝트 빌드까지 지원하는 확장성 • Ant 태스크와 빌드가 기본적으로 탑재 (기존에 작성된 Ant Task를 Gradle에서 직접 호출 가능) • 기존의 어떠한 구조의 프로젝트라도 Gradle로의 통합 및 쉬운 마이그레이션 • 원격 레퍼지토리나 pom.xml, ivy.xml 도움 없이 이행적(transitive) 의존성 관리를 지원 • Gradle Wrapper를 사용하여 Gradle 이 설치되지 않은 환경에서 빌드 실행 가능 • Groovy 기반의 빌드 스크립트를 사용함으로써 third party libraries를 포함시키고 커스트마이즈 할 수 있다. • 아파치 2.0 라이선스 (오픈소스 제공) • Build scrip는 xml이 아닌 Groovy로 작성
  • 7. Gradle 장, 단점 1. 간결함 : xml을 사용하지 않기때문에 장황하지 않음. 2. 속도 : 성능 향상을 위해 증분 빌드, 작업 결과 캐싱, 증분 하위 작업, 병렬 실행 등을 제공. 3. 멀티프로젝트 : 하나의 repository내에 여러 개의 하위 프로젝트 구성 가능. (상속x, 주입o) 4. 유연성 + 확장성 : 직접 Task 구현과 플러그인을 만들어서 기능을 추가 할 수 있음. 5. 플러그인 생태계 : 플러그인 관리를 위한 허브가 있고 그 안에는 수많은 플러그인이 존재. • 장점 • 단점 1. Maven보다 컴파일/빌드 속도가 느리다. 2. IDE의 지원이 다소 미흡 3. 메모리 사용량이 많다. (권장 메모리 8GB, 4GB 메모리 사용시 Out of memory 발생 가능) 4. 이행적 의존성(transitive dependency) 충돌로 인해 자신도 모르게 지정한 것보다 높은 버전의 라이브러리를 받아오는 현상이 있음.(단점 이라기 보다는 Gradle의 의도)
  • 8. Ant, Maven, Gradle (eclipse project directory structure) • Ant • Maven • Gradle
  • 9. Maven, Gradle Build Script Maven의 pom.xml과 Gradle의 build.gradle • Maven의 경우 사용자 지정 빌드 스크립트를 사용하기 힘들고 프로젝트의 규모가 커질 수록 코드라인이 길어짐 • Gradle의 Build Script는 Maven 보다 짧고 가독성이 좋음
  • 10. Links • https://gradle.org/ • https://zeroturnaround.com/rebellabs/java-tools-and-technologies-landscape-2016/ • /ihoneymon/gradle-27152839 • /sup2rior/gradle-guide-v-01-31412469 • https://www.slipp.net/wiki/pages/viewpage.action?pageId=11632748 • /ssuser59a869/java-build-tool • https://medium.com/@goinhacker/%EC%9A%B4%EC%98%81- %EC%9E%90%EB%8F%99%ED%99%94-1-%EB%B9%8C%EB%93%9C- %EC%9E%90%EB%8F%99%ED%99%94-by-gradle-7630c0993d09