如何解决这个“配置'编译'已经过时,已被'implementation'和'api'取代。”

问题描述 投票:0回答:2

当我尝试使用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'

}
java android github android-gradle
2个回答
1
投票

在后来的gradle版本中,compileapiimplementation取代。

api将依赖关系暴露给外部模块,就像compile一样。因此,如果你有模块A依赖于模块B,它取决于C,如果C改变,那么A需要重新编译。 Gradle团队认识到在很多情况下这是不必要的,因此它引入了implementation,所以如果C只更改依赖它的模块将必须重新编译,这意味着只有模块B。这缩短了构建时间并使项目更加整洁。

简而言之,如果用compile替换所有api,结果将是相同的,这就是警告所针对的。

但是,根据经验,您希望尽可能使用implementation以避免使用依赖项污染项目。

我试着先用compile替换implementation并建立项目。

这个link有更好的解释和可视化的差异。


1
投票

你可以改变这行compile 'com.applandeo:material-calendar-view:1.5.1'

到这个implementation 'com.applandeo:material-calendar-view:1.5.1'

© www.soinside.com 2019 - 2024. All rights reserved.