使用 Android 的 oss-licenses 插件手动向 OssLicensesMenuActivity 添加条目

WMD*_*WMD 7 android maven license-maven-plugin

我正在为我的 Android 应用程序使用 oss-licenses 插件(Android - 包括开源声明)来从所有正在使用的开源存储库中收集许可证信息。

但是一些发布者没有<licenses>在他们存储库的 POM 文件中包含这个标签。这就是为什么插件在OssLicensesMenuActivity用于显示列表时找不到许可证文件并且缺少这些库的原因。

有没有办法输入额外的条目OssLicensesMenuActivity

Ste*_*han 0

仍然没有简单的方法可以做到这一点。但是,有一个开放的合并请求将添加此功能。

不管怎样,我用一个解决方法解决了这个问题。首先,创建一个空库并将其发布到本地 Maven(或其他一些 Maven 存储库),然后将该库添加为依赖项。您可以使用此插件将库发布到本地 Maven 存储库。

库的 gradle 文件如下所示:

publishing {
    publications {
        release(MavenPublication) {
            groupId = "com.stephan"
            artifactId = "mylib"
            version = "1.0.0"

            pom {
                name = 'The name I want to show in the list'
                licenses {
                    license {
                        name = 'The license'
                        url = 'https://url.to.license'
                    }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

以及发布到本地 Maven 存储库的命令:./gradlew :nameoflibmodule:publishToMavenLocal

在应用程序项目中,可以轻松地将其添加为通常的依赖项implementation 'com.stephan:mylib:1.0.0'(还可以添加mavenLocal()到构建文件中的存储库)

库可以是空的,唯一重要的部分是有一个包含<licenses>元素的 pom 文件。这可以通过查看本地 Maven 存储库来验证$USER_HOME/.m2/repositories/

对于我的例子来说,这将是$USER_HOME/.m2/repository/com/stephan/mylib/1.0.0/mylib-1.0.0.pom