스프링 프로젝트에서 라이브러리를 추가하기 위해서 build.gradle파일의 dependencies에 compile을 많이 사용했었다.
하지만, compile을 사용하는 것은 Gradle 3.4부터 권장되지 않는다.
발간 후 몇년이 자난 책을 보면 build.gradle 파일 내에 compile 설정이 잔뜩 쓰져진 것을 알 수 있다.
하지만, 최신 버전의 gradle은 compile을 사용할 수 없다.
compile group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.7.3'
implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.7.3'
그 외에도 compile 대신에 사용할 수 있는 api가 있다.
- implementation는 Java Plugin을 적용하는 모든 프로젝트에서 사용할 수 있고 api는 Java Library Plugin을 구체적으로 적용하는 프로젝트에서만 사용할 수 있습니다.
- 대부분의 경우에 사용하는 것은 implementation 이다.
api가 사용될 때는 다음과 같다.
- super classes나 interfaces가 사용될 때
- public fields나 public annotation을 사용할 때
https://docs.gradle.org/6.8.1/userguide/userguide.html 공식 문서를 확인하여 이 글을 작성했다.
복잡한 내용이지만, 잘못 사용하면 보안상의 문제가 발생할 수 있으니 중요하다.