추천 검색어

최근 검색어

도서 IT전문서/IT입문서 프로그래밍/오픈소스
안드로이드 공식 빌드 시스템 Gradle 철저 입문
정 가
43,000원
출 간
2015-12-28
지 은 이
와타비키 타쿠마 등 4인
I S B N
9791186978122
분 량
620쪽
난 이 도
초급
부 록
예제 소스

가장 진화된 빌드 자동화 시스템, Gradle의 모든 것!

간단하고 유연하다!

그레이들은 미리 정의된 환경 구성과 그루비 DSL을 사용해서 빌드 스크립트를 쉽고 간단하게 작성할 수 있다. 또한, 사용자가 직접 빌드 태스크 순서를 제어할 수 있어서 변경 사항을 처리하기 쉽다.

 

멀티 프로젝트에 대응한다!

그레이들은 서브 프로젝트로 구성된 멀티 프로젝트의 빌드를 지원한다. 따라서 규모가 큰 프로젝트에서 여러 팀이 작업을 분담해야 할 때 손쉽게 빌드할 수 있다.

 

폴리글랏 빌드를 지원한다!

그레이들은 자바 계열 언어뿐만 아니라 C/C++, Objective-C, 파이썬, 자바스크립트, 안드로이드, iOS 등 다양한 언어와 플랫폼을 지원하여 엔터프라이즈 빌드에 유용하다. 실제로 링크드인은 그레이들을 사용해서 60개 언어에 대한 빌드를 통합하였다.

 

이 책에서 다루는 주요 내용

- 그레이들의 다양한 기능 소개

- 스크립트 파일 작성법

- 안드로이드 프로젝트 적용

- 다양한 플러그인 소개

- 테스트 자동화

- 이클립스, 넷빈즈, 인텔리제이 IDEA, 안드로이드 스튜디오 등 IDE와 연계하는 법

- 젠킨스 등 CI 서버 연동

- 빌드 결과물 퍼블리싱

- 메이븐이나 앤트에서 그레이들로 이식하는 법

- 부록 : 명령줄 옵션과 환경 변수, 내장 태스크 목록, 그레이들 최신 경향과 로드맵

 

대상 독자

- 안드로이드 개발자, 자바 개발자

-개발 프로젝트의 빌드 담당자, 관리자

 

대상 버전

Gradle 2.5에서 검증 완료 + 2.8 버전 내용 추가

 

예제 소스 공개

https://github.com/gilbutITbook/006791

1부 도입편

1장 그레이들의 세계
1.1 그레이들이란
__1.1.1 빌드 툴이란
__1.1.2 빌드 툴의 역사
__1.1.3 그레이들 개요
__1.1.4 그레이들 사례
1.2 왜 그레이들이어야 하나
__1.2.1 빌드 스크립트 생산성이 높다
__1.2.2 빌드 순서를 제어하기 쉽다
__1.2.3 멀티 프로젝트에 대응한다
__1.2.4 컴포넌트로 만들기 쉽다
__1.2.5 별도로 설치할 필요가 없다
__1.2.6 호환성을 최대한 배려한다
1.3 다른 빌드 툴과의 비교
__1.3.1 메이크 vs 그레이들
__1.3.2 앤트 vs 그레이들
__1.3.3 메이븐 vs 그레이들

2장 설치와 설정
2.1 그레이들 설치
__2.1.1 전제 조건
__2.1.2 GVM으로 그레이들 설치하기
__2.1.3 ZIP 파일을 해제해서 설치하기
2.2 기본 설정과 동작 확인
__2.2.1 환경 변수 설정
__2.2.2 gradle 명령 실행

3장 그레이들 시작
3.1 그루비 특유의 문법
__3.1.1 문자열
__3.1.2 메서드 호출 시 괄호 생략
__3.1.3 def를 이용한 형 지정 생략
__3.1.4 클로저
3.2 Hello Gradle world
__3.2.1 빌드 스크립트 작성과 실행
__3.2.2 빌드 스크립트 실행 결과 확인
__3.2.3 내장 태스크
__3.2.4 주요 명령줄 옵션
3.3 프로젝트 자동화와 빌드
__3.3.1 init 태스크를 이용한 프로젝트 자동 생성
__3.3.2 빌드 실행과 결과 확인
__3.3.3 테스트 실행과 결과 확인
3.4 웹 애플리케이션 빌드
__3.4.1 웹 프로젝트 작성
__3.4.2 웹 애플리케이션 실행
__3.4.3 WAR 파일 생성
3.5 그레이들의 편리한 기능
__3.5.1 그레이들 데몬
__3.5.2 그레이들 래퍼

2부 기초편

4장 자바 프로젝트 빌드
4.1 자바 프로젝트에 왜 플러그인이 필요한가
4.2 Java 플러그인이란
__4.2.1 소스 세트
__4.2.2 태스크
__4.2.3 규칙
__4.2.4 속성
4.3 자바 프로젝트에 적용하기
__4.3.1 기본적인 빌드 정의와 실행
__4.3.2 테스트 코드를 포함하는 빌드 정의와 실행
__4.3.3 기타 작업
4.4 Java 플러그인 상세 사항
__4.4.1 Java 플러그인의 태스크 의존관계
__4.4.2 태스크 상세 사항
4.5 규칙에서 벗어난 프로젝트에 적용
__4.5.1 디렉터리 구성 변경
__4.5.2 환경 구성으로 의존관계 변경하기
__4.5.3 소스 세트 추가
4.6 Application 플러그인
__4.6.1 Application 플러그인 사용법
__4.6.2 빌드 스크립트로 애플리케이션 실행하기
__4.6.3 애플리케이션 실행용 압축 파일 작성하기
4.7 War 플러그인
__4.7.1 War 플러그인의 동작
__4.7.2 속성
__4.7.3 환경 구성
__4.7.4 war 태스크 설정

5장 그레이들 기초
5.1 그레이들의 빌드
__5.1.1 빌드란 무엇인가
__5.1.2 빌드의 입력 정보
__5.1.3 빌드 흐름
5.2 아키텍처와 주요 기능
__5.2.1 물리적인 구조
__5.2.2 실행을 지탱하는 구조와 표준 기능
5.3 설정을 자동으로 로드하기
__5.3.1 초기화 스크립트로 설정하기
__5.3.2 속성 파일을 이용해서 설정하기
5.4 프로젝트 탐색
__5.4.1 프로젝트 구성과 탐색 관계
__5.4.2 설정 스크립트에 따른 구성
5.5 태스크 그래프
__5.5.1 태스크 그래프 개요
__5.5.2 태스크 그래프의 제약
5.6 파일 조작
__5.6.1 그레이들의 표준 파일 조작 기능
__5.6.2 단일 파일 참조
__5.6.3 파일 컬렉션을 이용한 파일 참조
__5.6.4 파일 트리를 이용한 파일 참조
__5.6.5 파일 복사
__5.6.6 파일 삭제
__5.6.7 디렉터리 생성
5.7 로그
__5.7.1 그레이들의 로그
__5.7.2 logger 속성을 사용한 로그
__5.7.3 외부 로그 프로그램과의 매핑
__5.7.4 로그 레벨 매핑 변경

6장 스크립트 파일 작성
6.1 스크립트 파일의 구조와 공통 요소
__6.1.1 스크립트 파일의 구조
__6.1.2 스크립트 파일의 공통 요소
__6.1.3 스크립트 블록과 도메인 객체
__6.1.4 주요 스크립트 블록
6.2 그레이들 도메인 객체
__6.2.1 Project 객체
__6.2.2 Task 객체
__6.2.3 Gradle 객체
__6.2.4 Settings 객체
__6.2.5 ExtensionAware 객체
__6.2.6 ExtraPropertiesExtension 객체
6.3 태스크 작성
__6.3.1 태스크 정의 방법
__6.3.2 의존관계 정의 방법
__6.3.3 태스크 규칙 정의 방법
__6.3.4 태스크 제어
__6.3.5 태스크 덮어쓰기
__6.3.6 태스크의 조건 실행
__6.3.7 태스크 순서 지정
__6.3.8 종료 태스크
6.4 플러그인 작성
__6.4.1 그레이들의 플러그인
__6.4.2 플러그인을 적용하는 방법
6.5 멀티 프로젝트의 스크립트 파일 작성
__6.5.1 레이아웃과 작성 방법 조합
__6.5.2 계층형 스크립트 파일
__6.5.3 단층형 스크립트 파일
__6.5.4 멀티 프로젝트의 태스크

7장 의존관계 관리
7.1 의존관계 관리의 목적
7.2 의존관계 해결 자동화
__7.2.1 환경 구성
__7.2.2 의존관계 정의
__7.2.3 환경 구성 상속
__7.2.4 저장소 정의
__7.2.5 동적 버전과 변경성 모듈
7.3 전이적 의존관계 관리
__7.3.1 경합 해결
__7.3.2 전이적 의존관계 제외하기
__7.3.3 사용할 버전 강제 지정하기
__7.3.4 클라이언트 모듈 의존관계
7.4 사용 중인 모듈 조사
7.5 캐시 제어와 오프라인 실행
__7.5.1 캐시 제어
__7.5.2 오프라인 실행

3부 실전편

8장 그레이들에서의 테스트
8.1 테스트 자동화와 빌드 툴
__8.1.1 테스트를 둘러싼 상황
__8.1.2 테스트 자동화를 위한 빌드 테스트 툴의 요건
8.2 그레이들을 이용한 접근법
__8.2.1 환경 차이 흡수
__8.2.2 특정 범위에서 테스트를 실행할 수 있을 것
__8.2.3 느린 테스트 대책
8.3 그레이들의 테스트 자동화
__8.3.1 단위 테스트
__8.3.2 통합 테스트
__8.3.3 시스템 테스트
8.4 테스트 관련 기타 기능
__8.4.1 로그 출력 제어
__8.4.2 테스트 리포트 출력 제어
__8.4.3 디버그 모드에서 테스트하기

9장 안드로이드 프로젝트 적용
9.1 Android 플러그인이란
9.2 안드로이드 프로젝트 작성법
__9.2.1 명령줄을 사용해서 작성하기
__9.2.2 안드로이드 스튜디오를 사용해서 작성하기
9.3 Android 플러그인의 특징
__9.3.1 빌드 스크립트의 특징
__9.3.2 내장 태스크
__9.3.3 서명 첨부 APK 파일 작성법
__9.3.4 빌드 타입과 제품 특성, 빌드 변형
__9.3.5 디렉터리 구조

10장 통합 개발 환경(IDE)과의 연계
10.1 그레이들의 IDE 지원
__10.1.1 이 장에서 다루는 IDE
__10.1.2 IDE의 그레이들 지원 특징
10.2 이클립스의 그레이들 지원
__10.2.1 플러그인 설치
__10.2.2 주요 지원 기능
__10.2.3 이클립스의 그레이들 지원 특징
10.3 넷빈즈의 그레이들 지원
__10.3.1 플러그인 설치
__10.3.2 주요 지원 기능
__10.3.3 넷빈즈의 그레이들 지원 특징
10.4 인텔리제이 IDEA의 그레이들 지원
__10.4.1 주요 지원 기능
__10.4.2 인텔리제이 IDEA의 그레이들 지원 특징
10.5 안드로이드 스튜디오의 그레이들 지원
__10.5.1 주요 지원 기능
__10.5.2 안드로이드 스튜디오의 그레이들 지원 특징
10.6 각 IDE의 그레이들 지원 현황 비교
__10.6.1 그레이들이 설치되었는가
__10.6.2 웹 애플리케이션을 지원하는가
__10.6.3 라이브러리에 코드나 Javadoc을 설정할 수 있는가
__10.6.4 오프라인에서도 이용할 수 있는가
__10.6.5 각 IDE의 프로젝트 설정 파일을 관리해야 하는가
__10.6.6 각 IDE가 작성하는 그레이들 프로젝트 호환성

4부 심화편

11장 젠킨스 연동
11.1 그레이들 사용을 위한 준비
__11.1.1 Gradle 플러그인 설치
__11.1.2 Gradle 플러그인 설정
11.2 그레이들을 사용하는 잡 작성
__11.2.1 빌드 설정
__11.2.2 환경 변수나 설정 파일 준비
__11.2.3 간단한 그레이들 프로젝트 설정 방법
11.3 코드 검사(인스펙션)
__11.3.1 체크스타일을 이용한 코드 검사
__11.3.2 파인드벅스를 이용한 코드 검사
__11.3.3 자코코를 이용한 커버리지 측정

12장 압축 파일 생성과 파일 퍼블리싱
12.1 그레이들의 압축 파일
12.2 압축 태스크
__12.2.1 압축에 포함할 파일 지정
__12.2.2 압축 파일 내 위치 지정
__12.2.3 CopySpec과 내포형 압축 설정
__12.2.4 압축 시 파일명 변경하기
__12.2.5 압축 시 파일 내용 변경하기
__12.2.6 압축 파일 생성 위치 설정
12.3 압축 형식별 고유 설정
__12.3.1 ZIP 파일
__12.3.2 TAR 파일
__12.3.3 JAR 파일
__12.3.4 WAR 파일
12.4 Distribution 플러그인
12.5 그레이들을 이용한 파일 퍼블리싱
12.6 모듈 정의
__12.6.1 소프트웨어 컴포넌트 등록하기
__12.6.2 아티팩트 등록하기
__12.6.3 메타 데이터 변경
12.7 모듈 퍼블리싱
__12.7.1 퍼블리싱 위치 저장소 설정
__12.7.2 퍼블리싱에 사용하는 태스크
12.8 빈트레이/JCenter 메이븐 저장소에 퍼블리싱하기
__12.8.1 빈트레이로 저장소 작성하기
__12.8.2 빈트레이의 패키지 작성
__12.8.3 Gradle Bintray 플러그인
__12.8.4 업로드한 모듈 퍼블리싱하기
__12.8.5 업로드한 모듈 사용하기
__12.8.6 JCenter 메이븐 저장소에 퍼블리싱하기
12.9 메이븐 중앙 저장소에 퍼블리싱하기
__12.9.1 퍼블리싱할 수 있는 모듈 조건
__12.9.2 메이븐 중앙 저장소에 퍼블리싱하는 절차
__12.9.3 퍼블리싱 전 준비 작업
__12.9.4 서명에 사용하는 키 쌍 준비하기
__12.9.5 빈트레이에 모듈 업로드하기
__12.9.6 모듈에 서명하기
__12.9.7 JCenter에 퍼블리싱하기
__12.9.8 메이븐 중앙 저장소에 퍼블리싱하기

13장 전문가로 가는 길
13.1 빌드 스크립트의 분할과 구조화
__13.1.1 메서드, 클래스 추출
__13.1.2 프로젝트 분할
__13.1.3 외부 라이브러리 사용
__13.1.4 외부 빌드 스크립트 사용
__13.1.5 buildSrc 프로젝트
__13.1.6 사용자 정의 태스크 작성
__13.1.7 사용자 정의 플러그인 작성
13.2 원격 서버 조작
__13.2.1 Gradle SSH 플러그인
__13.2.2 빌드 스크립트 정의와 실행
13.3 프록시 설정
13.4 사용자 정의 그레이들 작성 및 배포
__13.4.1 사용자 정의 그레이들로 할 수 있는 것
__13.4.2 초기화 스크립트를 이용한 사용자 정의 그레이들 작성
__13.4.3 그레이들 래퍼를 사용한 사용자 정의 그레이들 배포
13.5 그레이들 업데이트
__13.5.1 빌드 비교 플러그인
__13.5.2 빌드 비교 플러그인 설정

14장 다른 빌드 툴을 그레이들로 이식
14.1 이식 경로
14.2 앤트에서 그레이들로
__14.2.1 빌드 스크립트(build.xml) 읽기
__14.2.2 앤트 타깃 참조
__14.2.3 앤트의 속성 참조
__14.2.4 앤트 태스크의 호출
14.3 메이븐에서 그레이들로
__14.3.1 POM을 이용해서 그레이들 프로젝트 생성하기
__14.3.2 그레이들이 지원하는 POM 요소
__14.3.3 POM 변환 기능 정리

부록 A 명령줄 옵션과 환경 변수
부록 B 내장 태스크 목록
부록 C Gradle 플러그인 소개
부록 D 그레이들의 최신 동향과 향후 계획
부록 E 그루비 매뉴얼
ㆍ지은이 와타비키 타쿠마 등 4인
소개

와타비키 타쿠마(5장, 6장, 8장 집필)

독립형 시스템 개발 회사와 프리랜서를 거쳐 2007년에 주식회사 데라이트테크놀로지를 설립했다. 자바/그루비 관련 기술 컨설턴트와 아키텍트로 여러 프로젝트에 참여하였다. 일본 그레일스/그루비 사용자 그룹 운영 위원, 동북 지역 개발자 커뮤니티와 기술자 교류 이벤트 기획 등 커뮤니티 활동에 열심이다.

 

스에 노부히로(1~4장, 부록 집필)

외국계 소프트웨어 개발 회사를 거쳐 2014년부터 프리랜서로 활동 중이다. 오랫동안 엔터프라이즈 자바와 모바일 솔루션 관련 업무를 하였다. 최근에는 사물 인터넷 관련 시스템 구축과 아파치 스파크를 이용한 실시간 빅데이터 처리 업무를 담당하고 있다.

 

하야시 마사토시(7장, 12~14장 집필)

소프트웨어 엔지니어이다. 프리랜서로 일하다가 2014년부터 주식회사 도와곤에서 근무 중이다. 오픈 소스에 관심이 많으며 특히 몇 년 전부터 그레이들과 그레일스 관련 플러그인 개발과 보급에 앞장서고 있다.

 

이마이 마사노부(9~11장 집필)

일본 유니시스 주식회사에서 고객 지원 담당 시스템 엔지니어로 근무 중이다. 인텔리제이 IDEA를 좋아하며 이를 계기로 젠킨스, 그루비, 그레이들에 관심을 갖기 시작하였다. 


필요한 자료를 선택하세요.

추천도서