태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
2019.02.06 10:30


[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 도 함께 노출된다.




댓글을 달아 주세요

  1. 왕버거킹 2019.08.22 22:07  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사용


Posted by 돼지왕왕돼지