반응형
build.gradle 에 dependency 추가 후 reload시 아래 에러 메시지가 뜨면서 에러가 났다
A problem occurred evaluating root project 'proto'.
> Could not find method compile() for arguments [com.google.cloud:google-cloud-dialogflow]
on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
google-cloud-dialogflow 인자의 comiple() 메소드를 찾을수 없다. 라는 내용이었고,
compile 대신 implementation 으로 수정 후 reload하니 정상적으로 빌드 되었다.
둘의 차이가 뭔고 하니..
둘 다 사용을 위해 컴파일이 요구된다 하지만 compile은 연결된 API 가 프로젝트로부터 노출이 되고
implementation은 노출되지 않는다.
Gradle 3.0 부터 의존 라이브러리 수정 시 재빌드가 필요한 라이브러리를 선택적으로 할 수 있도록 compile 대신 api 와 implementation 으로 나눠 필요없는 경우 재빌드 하지 않도록 했다고 한다. 따라서 목적에 맞게 api 또는 implementation으로 작성하는것이 권장되겠다.
implementation : 의존 라이브러리 수정시 본 모듈까지만 재빌드
본 모듈을 의존하는 모듈은 해당 라이브러리의 api 를 사용할 수 없음
api : 의존 라이브러리 수정시 본 모듈을 의존하는 모듈들도 재빌드
본 모듈을 의존하는 모듈들도 해당 라이브러리의 api 를 사용할 수 있음
*프로젝트의 Gradle 버전 확인하는 방법
반응형
'기타' 카테고리의 다른 글
Github access Token 발행하기 (0) | 2022.03.18 |
---|---|
[JavaSrcipt] 티스토리 콘솔창 꾸미기 (0) | 2021.11.19 |
intellij 한글 입력이 안될때 (2) | 2021.11.12 |
오류 : java.io.IOExcetion: 파이프가 닫히는 중입니다. (0) | 2021.11.12 |
SSH key 생성 및 인증 방법/ build.gradle 로 ssh 접속을 통해 서버에 배포하기 (0) | 2021.11.02 |
댓글