문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
gradle:customplugins [2012/10/06 20:38] kwon37xi [독립 프로젝트] |
gradle:customplugins [2020/05/24 20:43] (현재) kwon37xi |
||
|---|---|---|---|
| 줄 77: | 줄 77: | ||
| 종종 지정할 프라퍼티가 많은 경우 확장 객체에 구성 클로저 블록을 추가하여 한번에 설정할 수 있도록 해준다. | 종종 지정할 프라퍼티가 많은 경우 확장 객체에 구성 클로저 블록을 추가하여 한번에 설정할 수 있도록 해준다. | ||
| - | * 구성 클로서를 사용하는 플러그인 '' | + | * 구성 클로저를 사용하는 플러그인 '' |
| apply plugin: GreetingPlugin | apply plugin: GreetingPlugin | ||
| 줄 196: | 줄 196: | ||
| ===== 다중 도메인 객체 처리하기 ===== | ===== 다중 도메인 객체 처리하기 ===== | ||
| + | Gradle은 빌드 언어와 잘 작동하는 객체의 컬렉션을 다루는 도우미 클래스를 제공해주고 있다. | ||
| + | * 도메인 객체를 다루는 '' | ||
| + | apply plugin: DocumentationPlugin // DocumentaionPlugin.apply()가 실행된다. | ||
| + | // books NamedDomainObjectContainer 값을 구성한다. apply보다 나중에 실행되지만 ' | ||
| + | books { | ||
| + | quickStart { | ||
| + | sourceFile = file(' | ||
| + | } | ||
| + | userGuide { | ||
| + | } | ||
| + | developerGuide { | ||
| + | } | ||
| + | } | ||
| + | |||
| + | task books << { | ||
| + | books.each { book -> | ||
| + | println " | ||
| + | } | ||
| + | } | ||
| + | |||
| + | class DocumentationPlugin implements Plugin< | ||
| + | void apply(Project project) { | ||
| + | def books = project.container(Book) | ||
| + | books.all { // 현재 있는, 그리고 앞으로 컬렉션에 추가될 객체를 모두 돌면서 아래 수행 | ||
| + | sourceFile = project.file(" | ||
| + | } | ||
| + | project.extensions.books = books | ||
| + | } | ||
| + | } | ||
| + | |||
| + | class Book { | ||
| + | final String name // ' | ||
| + | File sourceFile | ||
| + | |||
| + | Book(String name) { | ||
| + | this.name = name | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | * 실행하면 < | ||
| + | developerGuide -> / | ||
| + | quickStart -> / | ||
| + | userGuide -> / | ||
| + | </ | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | ===== 태스크간의 의존성 ===== | ||
| + | 플러그인 태스크 간의 의존성은 다음과 같은 형태로 정의할 수 있다. | ||
| + | |||
| + | <code groovy> | ||
| + | project.task(' | ||
| + | dependsOn(project.tasks.a, | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== 플러그인에 의존성 주입 ===== | ||
| + | * [[https:// | ||
| + | * '' | ||
| + | * [[https:// | ||
| + | |||
| + | ===== 참조 ===== | ||
| + | * [[https:// | ||