두 손끝의 창조자

Gradle Java Library plugin vs Java plugin 본문

패키지관리/Gradle

Gradle Java Library plugin vs Java plugin

codinglog 2025. 3. 9. 14:34

Gradle에서 Java Library 플러그인(java-library)과 Java 플러그인(java)은 Java 프로젝트를 빌드하기 위한 기능을 제공하지만, 주요 차이점은 API 공개 여부에 있습니다.

Java Library 플러그인 (java-library)

  • Java 플러그인의 기능을 확장하여 Java 라이브러리에 특화된 기능을 제공합니다.
  • 라이브러리의 API를 명확하게 정의하고 관리하는 데 중점을 둡니다.
  • api와 implementation 두 가지 의존성 설정(configuration)을 제공합니다.
    • api: 라이브러리의 API에 노출되는 의존성을 선언합니다. 이 의존성은 라이브러리를 사용하는 다른 프로젝트의 컴파일 시 클래스패스에 포함됩니다.
    • implementation: 라이브러리 내부에서만 사용되는 의존성을 선언합니다. 이 의존성은 라이브러리를 사용하는 다른 프로젝트에 노출되지 않아, 컴파일 시간을 줄이고 불필요한 의존성 문제를 방지합니다.
  • Gradle 7.0부터 compile과 runtime 설정은 제거되었으며, implementation과 api로 대체되었습니다.

Java 플러그인 (java)

  • 기본적인 Java 프로젝트 빌드 기능을 제공합니다.
  • API 공개 여부에 대한 명확한 구분을 두지 않습니다.

핵심 차이점

기능Java Library 플러그인 (java-library)Java 플러그인 (java)
API 공개 api 설정을 통해 명시적으로 관리 명확한 구분 없음
의존성 관리 api, implementation 구분 사용 기본적인 의존성 관리
주요 목적 라이브러리 개발 및 API 관리 일반적인 Java 프로젝트 빌드
compile 설정 삭제됨 존재하지 않음
runtime 설정 삭제됨 존재하지 않음
 

참고페이지:

  1. https://docs.gradle.org/current/userguide/java_library_plugin.html
  2. https://docs.gradle.org/current/userguide/java_plugin.html
반응형
Comments