[compileOnly vs rumtimeOnly]

compileOnly : compile시 필요한 library. compileClasspath 에만 들어감 (대표적으로 lombok)

runtimeOnly : rumtime시 필요한 library. runtimeClasspath 에만 들어감 (대표적으로 h2database)

 

[compile(api) vs implementation]

implementation : 지정한 라이브러리만 빌드

compile : 의존하고 있는 상위 라이브러리 까지 빌드

* compile 키워드는 gradle 7.x 부터 deprecated 되었음 (api 로 대체)

 

A > B > C 의존성을 갖는 상황, C 가 변경되었을 때

compile : A, B 까지 rebuild

implementation : B 만 rebuild 

* compile(api) 은 프로젝트가 무거워지므로 사용을 지양할 것

https://kotlinworld.com/317

https://medium.com/mindorks/implementation-vs-api-in-gradle-3-0-494c817a6fa

https://stackoverflow.com/questions/44413952/gradle-implementation-vs-api-configuration

 

annotationprocessor : 

 

https://tomgregory.com/annotation-processors-in-gradle-with-the-annotationprocessor-dependency-configuration/#:~:text=Annotation%20processing%20is%20a%20Java,such%20as%20classes%20or%20documentation.

 

 

 

https://docs.gradle.org/current/userguide/java_library_plugin.html#sec:java_library_configurations_graph

 

 

 

반응형

+ Recent posts