[목표]
Gradle Task를 만드는 간단한 플러그인 작성 > maven local에 배포 > 해당 플러그인 활용해보기
[Usage]
/ 공식문서 참고
/ kotlin 사용 (개발언어, DSL)
/ java-gradle-plugin, maven-publish 플러그인 활용
[라이브러리 프로젝트]
먼저 간단하게 아래와 같이 GreetingPlugin 클래스를 만들고, 플러그인을 생성하도록 설정합니다.
build.gradle.kts
group = "org.example"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
plugins {
kotlin("jvm") version "1.6.10"
`java-gradle-plugin`
`maven-publish`
}
gradlePlugin {
plugins {
create("simplePlugin") { // java-gradle-plugin을 활용하여 플러그인 생성
id = "org.example.greeting"
implementationClass = "org.example.GreetingPlugin" // 구현체
}
}
}
setting.gradle.kts
rootProject.name = "mylibrary"
GreetingPlugin.kt
package org.example
import org.gradle.api.Plugin
import org.gradle.api.Project
class GreetingPlugin : Plugin<Project> {
override fun apply(project: Project) {
project.tasks.register("printMessage") { // task 등록
it.group = "my tasks" // task group명
it.description = "This is my first task"
it.doLast { // task 실행 block
println("This is my first task!")
}
}
}
}
maven-publish 플러그인을 활용하여 publishToMavenLocal task를 실행하면 maven 로컬저장소(~/.m2/repository)에 해당 프로젝트가 배포되는 것을 확인할 수 있습니다.
[플러그인 적용 테스트]
build.gradle.kts
group = "org.example"
version = "1.0-SNAPSHOT"
plugins {
id("org.example.greeting") version "1.0-SNAPSHOT" // 플러그인 적용
}
setting.gradle.kts
rootProject.name = "mylibrary-test"
pluginManagement {
repositories {
mavenLocal()
mavenCentral()
}
}
위와 같이 설정하여 내가 만든 플러그인을 적용해보면, my tasks 그룹에 printMessage라는 task가 생성된 것을 확인할 수 있습니다.
'#BASIC' 카테고리의 다른 글
[Algorithm] Binary Search (이진검색) (0) | 2022.03.01 |
---|---|
[ETC] 성능 테스트를 위한 nGrinder 설치 및 사용해보기 (Docker) (0) | 2022.02.13 |
[Gradle] Java Platform plugin (0) | 2022.02.08 |
[Kotlin] Functional (SAM) Interface (0) | 2022.02.07 |
[Kotlin] fun interface (0) | 2022.02.05 |