728x90

그래들(Gradle)은 그루비(Groovy)를 기반으로 한 빌드도구이다.

근데 그루비는 뭐냐
JVM에서 실행되는 스크립트 언어로 자바를 기반으로 만들어서 자바랑 비슷하다
JVM에서 돌아가기 때문에 자바API도 사용 가능하다.

 

그래들(Gradle)은 그루비(Groovy)로 만들었고 요즘 메이븐(Maven) 대신 쓰는 빌드도구다.
그래들은 Ant와 Maven의 장점을 모아서 만들었다.

내가 궁금했던거는 lombok같은 라이브러리를 build.gradle 파일의 dependencies에 추가해야 하는데
dependency configuration(의존성 구성)이 뭐 이리 많은지..
dependency configuration는 라이브러리들이 적용될 범위를 정하는 곳이다.
아래는 공식문서다. 영어 잘하면 아래에서 보면된다.
https://docs.gradle.org/current/userguide/java_plugin.html#sec:java_plugin_and_dependency_management

 

The Java Plugin

If a dependent project has changed in an ABI-compatible way (only its private API has changed), then Java compilation tasks will be up-to-date. This means that if project A depends on project B and a class in B is changed in an ABI-compatible way (typicall

docs.gradle.org

dependency configuration의 종류는 아래와 같다

- implementation
- compile
- compileOnly
compileClasspath extends compileOnly, implementation
annotationProcessor
runtimeOnly
runtimeClasspath extends runtimeOnly, implementation
testImplementation extends implementation
testCompileOnly
testCompileClasspath extends testCompileOnly, testImplementation
testRuntimeOnly extends runtimeOnly
testRuntimeClasspath extends testRuntimeOnly, testImplementation
archives
default extends runtimeElements

compile은 연결된 API 모두가 프로젝트에 의해 노출되고
implementation은 노출되지 않는다.
runtimeOnly는 runtime 시에만 필요한 라이브러리 일때 사용

test들어간거는 테스트 수행시에만 적용되는거 등등

출처: https://kotlinworld.com/316

 

[Gradle] build.gradle의 dependencies 블록 한 번에 정리하기. implementation, testImplementaion의 차이와 라이브

dependencies 블록이란? dependencies 블록은 프로젝트를 구성하기 위해 받아와야 할 라이브러리를 정의해놓는 공간이다. dependencies 블록에는 보통 다음과 같은 문법이 들어간다. dependencies { implementation(

kotlinworld.com

 

728x90

'개념정리' 카테고리의 다른 글

CDN  (0) 2022.02.09
절대경로, 상대경로  (0) 2022.01.05
서블릿 (Servlet)  (0) 2021.10.25
JSP (Java Server Page)  (0) 2021.10.25
정규표현식  (0) 2021.08.09

+ Recent posts