4.6 KiB
플러그인
Gradle의 플러그인은 프로젝트의 빌드 및 관리를 확장하는 강력한 기능을 제공한다. Gradle은 기본적인 빌드 기능을 제공하지만, 플러그인을 사용하면 프로젝트에 특정 기능을 추가하고, 빌드 스크립트에서 불필요한 반복을 줄일 수 있다. 예를 들어, Java 프로젝트를 빌드하거나, Kotlin을 지원하거나, 애플리케이션을 패키징하는 등의 작업을 자동화할 수 있다.
플러그인의 종류
Gradle 플러그인은 크게 두 가지로 나뉜다.
- 빌드 스크립트에 포함된 로컬 플러그인
- 프로젝트 내에서 직접 정의하여 사용하는 플러그인
- 외부 저장소에서 제공하는 공식 플러그인 및 커스텀 플러그인
- Gradle 공식 플러그인이나 외부 개발자가 만든 플러그인
Gradle 플러그인 적용 방법
Gradle에서 플러그인을 적용하는 방법은 크게 두 가지가 있다.
plugins 블록 사용
Kotlin DSL(build.gradle.kts)에서 플러그인을 적용하는 방식이다.
plugins {
id("java") // Java 프로젝트를 위한 플러그인
id("org.jetbrains.kotlin.jvm") version "1.8.0" // Kotlin JVM 플러그인
}
apply 함수 사용
이전 Gradle 방식으로, 현재는 plugins 블록을 사용하는 것이 권장된다.
apply(plugin = "java")
apply(plugin = "org.jetbrains.kotlin.jvm")
Gradle의 공식 플러그인
Gradle은 다양한 공식 플러그인을 제공하며, 각 플러그인은 특정한 목적을 위해 사용된다.
Java 플러그인 (java)
Java 애플리케이션을 개발할 때 사용하는 플러그인으로, 컴파일, 테스트, JAR 패키징 등의 기능을 제공한다.
plugins {
id("java")
}
기본적으로 제공하는 태스크:
compileJava: Java 코드 컴파일processResources: 리소스 처리jar: JAR 파일 생성test: JUnit 등의 프레임워크로 테스트 실행
Java Library 플러그인 (java-library)
라이브러리 형태의 Java 프로젝트를 위한 플러그인으로, java 플러그인보다 좀 더 세분화된 의존성 관리를 제공한다.
plugins {
id("java-library")
}
차이점:
api의존성을 사용하여 다른 모듈에서도 접근 가능하게 설정할 수 있다.implementation과api의 차이를 명확하게 구분하여, 라이브러리 프로젝트에 적합하다.
Application 플러그인 (application)
실행 가능한 애플리케이션을 개발할 때 사용하는 플러그인으로, 실행 가능한 JAR 파일을 생성하고, mainClass를 지정할 수 있다.
plugins {
id("application")
}
application {
mainClass.set("com.example.MainKt")
}
제공 테스크 :
run: 애플리케이션 실행installDist: 실행 가능한 패키지 생성distZip: ZIP 파일로 애플리케이션 배포
Maven Publish 플러그인 (maven-publish)
라이브러리를 Maven 중앙 저장소 또는 내부 Nexus, Artifactory 등의 저장소에 배포할 때 사용한다.
plugins {
id("maven-publish")
}
publishing {
publications {
create<MavenPublication>("maven") {
groupId = "com.example"
artifactId = "my-library"
version = "1.0.0"
from(components["java"])
}
}
}
Android 플러그인 (com.android.application)
Android 애플리케이션을 개발할 때 사용하는 플러그인이다.
plugins {
id("com.android.application")
id("kotlin-android")
}
- Android 프로젝트 빌드 및 패키징
AndroidManifest.xml및 리소스 처리- APK 생성
Kotlin 플러그인 (org.jetbrains.kotlin.jvm)
Kotlin을 사용한 JVM 애플리케이션을 개발할 때 사용한다.
적용 방법:
plugins {
id("org.jetbrains.kotlin.jvm") version "1.8.0"
}
기본 제공 태스크:
- Kotlin 코드 컴파일 (
compileKotlin) - Kotlin 테스트 실행 (
test) - JAR 파일 생성 (
jar)
Java Gradle Plugin (java-gradle-plugin)
Gradle 플러그인을 직접 개발할 때 사용하는 플러그인이다.
plugins {
id("java-gradle-plugin")
}
제공 기능:
- Gradle 플러그인 코드 작성 및 빌드
- 플러그인 테스트 및 배포