【问题标题】:How to make license information available to Google OSS license plugin for an Android aar library?如何为 Android aar 库的 Google OSS 许可证插件提供许可证信息?
【发布时间】:2020-04-03 10:16:12
【问题描述】:

我正在使用OSS license plugin(注意:由于bug,我必须使用版本0.9.5)

据我所知,在 Gradle 中输入许可证信息没有“官方”支持(尽管这可能包含在规范的更高版本中的 Gradle metadata 中)但是通过部署 AAR 工件pom文件可以声明一个许可证。

根据官方文档,这应该足够了:

如何确定许可

Gradle 插件在编译时扫描项目的 POM 依赖项。当应用程序的直接依赖项存在 Maven POM 时,插件会处理该元素并将每个许可证的链接和标题嵌入到最终应用程序 APK 中的 Android 资产中。

来源:https://developers.google.com/android/guides/opensource#how_licenses_are_determined

我已经为我的 aar 库这样做了。这是部署在 Nexus 存储库中生成的 pom.xml 文件的 sn-p:

<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>my-artifact</artifactId>
<version>1.0.0</version>
<packaging>aar</packaging>
<licenses>
   <license>
      <name>Proprietary license</name>
      <url>https://someurl</url>
   </license>
</licenses>

不幸的是,OssLicensesMenuActivity 仍然不会列出我的依赖项。 我的声明如下所示:

api('com.mycompany:my-artifact@aar') {
    transitive = true
}

我认为该插件适用于开源许可证,但我不明白这在技术上有何影响。

问题:如何打包一个具有指定许可证的 Android 库,该许可证将显示在 OssLicensesMenuActivity 中,供依赖此库的应用程序使用?

【问题讨论】:

    标签: gradle android-gradle-plugin aar


    【解决方案1】:

    我能够完成这项工作。诀窍是通过 Maven2 存储库使依赖项可用。如果 pom.xml 文件带有 license 标签,那么这将显示在 OssLicensesMenuActivity 中。

    据我所知,仍然没有指定许可证的“本地”Gradle 方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-24
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      • 2012-09-03
      • 1970-01-01
      相关资源
      最近更新 更多