为什么Play Services OSS插件显示Maven工件而不是友好名称?

时间:2018-07-11 20:58:14

标签: android maven google-play-services

我决定尝试Play Services OSS License Plugin,遇到了我不太了解的问题。

插件似乎已正确连接,因为我在查看OssLicensesMenuActivity时看到了。

My App

但是在android上查看股票拨号器应用程序后,他们的OssLicensesMenuActivity看起来像这样。

Google's Phone App

为什么我的应用程序显示Maven工件名称,而Google的应用程序却显示了格式良好的开源库依赖项披露?

以下是gradle脚本的相关内容:

项目级别:

buildscript {
    ext.kotlin_version = '1.2.51'
    ext.kotlin_coroutines_version = '0.22.4'
    ext.support_lib_version = '27.1.1'

    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.fabric.io/public'
        }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:3.2.0'
        classpath 'com.google.gms:oss-licenses:0.9.2'
        classpath 'io.fabric.tools:gradle:1.25.1'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

模块级别(已删除一些特定于项目的详细信息):

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.google.gms.oss.licenses.plugin'

android {
    compileSdkVersion 27
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "4.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
}

dependencies {
    implementation project(':repository')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.google.android.gms:play-services-oss-licenses:15.0.1'
    implementation 'com.google.firebase:firebase-core:16.0.1'
    implementation 'com.google.firebase:firebase-messaging:17.1.0'
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.4'
    implementation "com.android.support:appcompat-v7:$support_lib_version"
    implementation "com.android.support:preference-v7:$support_lib_version"
    implementation "com.android.support:design:$support_lib_version"
    implementation "com.android.support:support-v4:$support_lib_version"
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version"
    implementation 'com.google.dagger:dagger:2.11'
    compileOnly 'org.glassfish:javax.annotation:10.0-b28'
    kapt 'com.google.dagger:dagger-compiler:2.11'
    implementation 'androidx.core:core-ktx:0.3'
    implementation 'com.squareup.okhttp3:okhttp:3.10.0'
    implementation('com.jsibbold:zoomage:1.1.0') {
        exclude group: "com.android.support", module: "appcompat-v7"
    }
    implementation 'com.github.bumptech.glide:glide:4.7.1'
    kapt 'com.github.bumptech.glide:compiler:4.7.1'
    implementation 'com.jakewharton.timber:timber:4.7.0'
    implementation 'com.amplitude:android-sdk:2.14.1'
    debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5.4'
    releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
    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'
}

apply plugin: 'com.google.gms.google-services'

任何见识都受到赞赏!

1 个答案:

答案 0 :(得分:1)

play-services-oss-licenses库的许可证显示功能(由您的应用程序使用)与Dialer应用程序的内部使用的许可证显示功能(我认为您的第二个屏幕截图所指的)有些微妙的不同。用于显示许可证的插件+ play-services-oss-licenses方法还考虑了您应用的直接依赖关系(例如org.jetbrains.kotlinx.*)以及Google Play服务库组件使用的任何OSS库(例如{{1} }。

对于您的应用程序对OSS库的直接依赖关系,我们选择显示完全合格的Maven工件ID,因为这样可以更清楚地了解所使用的库。

Dialer应用程序显示的名称更友好,因为Google使用的构建系统处理OSS库通知和名称的方式不同于外部构建系统。

另外,我们计划在不久的将来使oss-license插件开源,以便您可以自己了解我们在做什么。