본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Gradle] compile(api) vs. implementation

by 돼지왕 왕돼지 2019. 2. 6.
반응형

[Gradle] compile(api) vs. implementation


api dependency, Classpath, compile deprecated, compile vs implementation, Consumer, dependency, dependency change, gradle, IMPLEMENTATION, implementation vs api, Library, recompile, transitive dependency, [Gradle] compile vs. implementation, 빠른 compile, 쉬운 배포


-

gradle 3.0 이 나오면서 compile 은 deprecated 되었고, implementation 또는 api 를 써야 한다.



-

api dependency는 consumer 에게 library 가 노출이 되어, consumer 의 classpath 에 포함이 된다.

implementation 은 consumer 에게 노출되지 않아, compile classpath 에 들어가지 않는다.



-

implementation 의 장점은 아래와 같다.


dependency 가 compile classpath 에 들어가지 않아서 transitive dependency 를 실수로 depend 하지 않는다.

더 빠른 compile 이 가능하다.

dependency change 가 발생했을 때 recompile 을 적게 한다.

쉬운 배포가 가능하다. library 가 쓰는 녀석과 compile 할 때 들어가야 하는 library 구분이 된다.



-

예를 들어 x 라는 lib 을 사용하는데, 여기서 y, z 라는 lib 을 dependency 로 가지고 있다면, implementation 으로 사용하면 x 의 api 만 open 되고, api 를 사용하면 y, z 도 함께 노출된다.




반응형

댓글