2017-11-01 2 views
0

최근 Android Studio를 버전 3.0으로 업데이트했습니다. 이제 build.gradle에서 모든 종속성은 compile 키워드 대신 implementation 키워드를 사용하여 추가됩니다.Gradle의 새로운 구현 키워드는 무엇입니까

dependencies { 
    implementation fileTree(include: ['*.jar'], dir: 'libs') 
    implementation 'com.android.support:appcompat-v7:25.4.0' 
} 

그러나 compile 키워드는 여전히 작동합니다. compileImplementation의 차이점은 무엇입니까?

답변

1

compile 도서관이 api 또는 implementation

Gradle을 사용하면 의존성이 컴파일에 게시되어 있는지 여부를 제어 할 수 있습니다 3.4 도입 된 새로운 자바 라이브러리 플러그인 구성을 사용하여 사용하므로 사용되지 않으며 해당 라이브러리를 사용하는 프로젝트의 런타임 클래스 경로. Android 플러그인은 이러한 새로운 종속성 구성을 채택하고이를 사용하기 위해 대규모 프로젝트를 마이그레이션하면 빌드 시간이 크게 단축 될 수 있습니다.

구현 의존성이 API를 변경하는 경우

implementation

는 Gradle을 그 의존성은 직접 종속 모듈을 재 컴파일. 대부분의 앱 및 테스트 모듈은이 구성을 사용해야합니다. 모듈, Gradle을이 모듈은 이적으로 다른 모듈이 의존성을 수출하고자하는 것을 알려주는 것 API를 종속성을 포함

api

는 모두 런타임에 그들에게 사용할 수 있도록하고 컴파일 시간. 이 구성은 컴파일과 마찬가지로 작동하지만 (현재는 사용되지 않음) 일반적으로 라이브러리 모듈에서만 사용해야합니다. API를 종속성 외부 API를 변경하는 경우, Gradle을가

new dependency configurations

에서 읽기 컴파일시에 그 의존성에 액세스 할 수있는 모든 모듈을 재 컴파일, 때문이다
관련 문제