Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Kubernetes
- log4j2
- gson
- useEffect
- springboot
- react
- VSCode
- JPA
- tibero
- IntelliJ
- mybatis
- MySQL
- sapfiorielements
- Git
- intellijIDEA
- Linux
- dbeaver
- NCP
- Java
- maven
- Spring
- nodejs
- database
- Windows
- JavaScript
- LOG4J
- nginx
- gradle
- BPMN
- docker
Archives
- Today
- Total
두 손끝의 창조자
Gradle Java Library plugin vs Java plugin 본문
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 설정 | 삭제됨 | 존재하지 않음 |
참고페이지:
반응형