2016년 4월 11일 월요일

Build Init Plugin

Grdle build init plugin 은 새로운 gradle build를 만드는 과정을 시작하는 데에 사용될 수 있다.
이 것은 기존에 있던 build를 완전히 새로운 타입의 gradle build로 만드는 것도 지원한다.

Gradle plugin은 통상적으로 그것들이 사용되기 전에 프로젝트에 적용되어야 한다.
Build init plugin은 자동으로 적용되는 plugin이고 이 것은 명시적으로 적용하지않아도 된다는 것을 의미한다.
Plugin을 사용하기 위해서 간단히 Gradle build를 만들고 싶은 곳에 init 이라는 이름의 task를 실행시킬 수 있다.

또한 Wrapper plugin 으로부터 wrapper task를 활용할 수도 있다.

Tasks

plugin은 아래와 같은 task를 프로젝트에 추가한다.

Task name Depends on Type Description
init wrapper InitBuild Generates a Gradle project.
wrapper - Wrapper Generates Gradle wrapper files.



What to set up

init 은 다른 build setup type을 지원한다.
type은 --type argument 값을 제공함으로써 명시할 수 있다.
예를 들어, 간단히 실행할 Java library project를 만들기 위해서는,

gradle init --type java-library.

만약 --type 파라미터가 제공되지 않는다면, Gradle은 제공 환경으로 부터 type을 추측할 것이다.
예를 들면 만약 pom.xml 파일을 찾았다면 Gradle build로 변경할 때 type을 "pom" 으로 설정할 것이다.

만약 type이 추측되지않는다면, "basic" 이 기본적으로 사용된다.

모든 build setup type은 Gradle Wrapper의 setup을 포함한다.


Build init types

“pom” (Maven conversion)

"pom" 타입은 Apache maven build 를 Gradle build 로 변경할 때 사용되어질 수 있다.
이 작업은 POM 을 하나 또는 여러개의 Gradle 파일로 변경함으로써 이루어지고, 올바른 pom.xml 파일이 init task가 호출할 수 있는 directory 안에 있다면 가능하다.
이 type은 pom 파일이 있다면 자동으로 설정된다.

이 Maven 변환은 Gradle community member들로 인해 개발된 maven2gradle 에 의해 영감을 받았다.

변환 과정은 아래와 같은 내용을 포함한다.

- effective POM 과 effective settings (support for POM inheritance, dependency management, properties) 사용
- single module 과 multimodule projects 둘 다 지원
- custom module 이름 지원 (디렉토리 이름에 따라 다름)
- id, description, version 같은 일반적인 metadata 생성
- maven, java , war plugin 적용
- war 와 jar 패키징 지원
- dependency 생성 (외부, 내부 module 모두)
- download repository 생성 (local Maven repository 등)
- java compiler setting 적용
- source와 test 패키징 지원
- TestNG runner 지원
- Maven enforcer plugin setting으로 부터 global exclusions 생성


“java-library”

“java-library” 타입은 추측되지않는다. 반드시 명시되어야 한다.

이 것은 아래와 같은 내용을 가진다.

- "java" plugin 사용
- "jcenter" dependency repository 사용
- 테스팅을 위한 Junit 사용
- source code를 위한 conventional location 안의 디렉토리
- 만약 source나 test 파일이 없다면, sample class 와 unit test를 포함

--test-framework argument 값을 제공함으로써, 대체할 만한 다른 test framework를 명시할 수 있다.
다른 test framework를 사용하기 위해, 아래 커맨드들 중 하나를 사용하면 된다.

gradle init --type java-library --test-framework spock: testing을 위해 spock 사용
gradle init --type java-library --test-framework testng: testing을 위해 testNG 사용


“scala-library”

“scala-library” 타입은 추측되지않는다. 반드시 명시되어야 한다.

이 것은 아래와 같은 내용을 가진다.

- "scala" plugin 사용
- "jcenter" dependency library 사용
- Scala 2.10 사용
- 테스팅을 위한 Scala Test 사용
- source code를 위한 conventional location 안의 디렉토리
- 만약 source나 test 파일이 없다면, sample scala class 와 Scala Test test suite를 포함
- 기본적으로 Zinc Scala compiler 사용


“groovy-library”

“groovy-library” 타입은 추측되지않는다. 반드시 명시되어야 한다.

이 것은 아래와 같은 내용을 가진다.

- "groovy" plugin 사용
- "jcenter" dependency library 사용
- Grovvy 2.x 사용
- 테스팅을 위한 Spock Testing framework 사용
- source code를 위한 conventional location 안의 디렉토리
- 만약 source나 test 파일이 없다면, sample Groovy class 와 Spock specification을 포함


“basic”

“basic” build init type은 새로운 Gradle project를 만드는 데에 유용하다.
이 것은 시작할 때 도움을 줄 수 있는 comment가 포함된 sample build.gradle 파일을 만든다.
이 type은 아무 type도 명시되어 있지않고, 추측되지 않을 때 적용된다.

원본 출처 : https://docs.gradle.org/current/userguide/build_init_plugin.html

댓글 없음 :

댓글 쓰기