gpt4 book ai didi

android - 为什么 Play Services OSS 插件显示 maven Artifact 而不是友好名称?

转载 作者:太空狗 更新时间:2023-10-29 13:47:57 26 4
gpt4 key购买 nike

我决定试用 Play Services OSS License Plugin遇到了一些我不太明白的事情。

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

My App

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

Google's Phone App

为什么我的应用程序显示 Maven Artifact 名称,而谷歌的应用程序显示格式良好的开源库依赖项披露?

以下是 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'

感谢任何见解!

最佳答案

play-services-oss-licenses 库(由您的应用程序使用)和 Dialer 应用程序内部使用的许可证显示功能(我认为您的第二个屏幕截图指的是)是微妙的不同。用于显示许可证的插件 + play-services-oss-licenses 方法还考虑了应用程序的直接依赖项(例如 org.jetbrains.kotlinx.*),以及Google Play 服务库组件使用的任何 OSS 库(例如 com.google.firebase:firebase-core:16.0.1)。

对于您的应用对 OSS 库的直接依赖性,我们选择显示完全限定的 Maven Artifact ID,因为这可以更清楚地说明正在使用的库。

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

另外,我们计划在不久的将来开源 oss-license 插件,这样您就可以亲眼看看我们在做什么。

关于android - 为什么 Play Services OSS 插件显示 maven Artifact 而不是友好名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51294071/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com