当我尝试使用GitHub的问题。我放弃了
配置'compile'已经过时,已被'implementation'和'api'取代。
我尝试使用Material Calendar View
我的朋友:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.mederov.timelord"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
compile 'com.applandeo:material-calendar-view:1.5.1'
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:support-v4:28.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.github.bumptech.glide:glide:4.4.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.4.0'
implementation 'de.hdodenhof:circleimageview:3.0.0'
}
在后来的gradle版本中,compile
被api
和implementation
取代。
api
将依赖关系暴露给外部模块,就像compile
一样。因此,如果你有模块A
依赖于模块B
,它取决于C
,如果C
改变,那么A
需要重新编译。 Gradle团队认识到在很多情况下这是不必要的,因此它引入了implementation
,所以如果C
只更改依赖它的模块将必须重新编译,这意味着只有模块B
。这缩短了构建时间并使项目更加整洁。
简而言之,如果用compile
替换所有api
,结果将是相同的,这就是警告所针对的。
但是,根据经验,您希望尽可能使用implementation
以避免使用依赖项污染项目。
我试着先用compile
替换implementation
并建立项目。
这个link有更好的解释和可视化的差异。
你可以改变这行compile 'com.applandeo:material-calendar-view:1.5.1'
到这个implementation 'com.applandeo:material-calendar-view:1.5.1'