Android:如何在aar中包含license.txt文件?

Android:如何在aar中包含license.txt文件?,android,aar,Android,Aar,我想在.aar文件中包含LICENSE.txt文件。我怎么做 提前感谢。您可以通过添加Gradle任务来实现这一点,该任务可以解压aar,在其中复制许可证文件并重新解压aar 应在“bundleRelease”任务和“uploadArchives”任务之间完成 我可以这样做: android { // (...) def libraryModuleName = 'your-library-module-name' def outputAarDir = rootProje

我想在.aar文件中包含LICENSE.txt文件。我怎么做


提前感谢。

您可以通过添加Gradle任务来实现这一点,该任务可以解压aar,在其中复制许可证文件并重新解压aar

应在“bundleRelease”任务和“uploadArchives”任务之间完成

我可以这样做:

android {
    // (...)

    def libraryModuleName = 'your-library-module-name'
    def outputAarDir = rootProject.file(libraryModuleName + '/build/outputs/aar')
    def outputAarUnzipedDir = rootProject.file(libraryModuleName + '/build/outputs/aar/unziped')
    def aarReleaseFile = rootProject.file(libraryModuleName + '/build/outputs/aar/' + libraryModuleName + '-release.aar')

    task unzipAar(type: Copy) {
        from zipTree(aarReleaseFile)
        into outputAarUnzipedDir
    }

    task addLicenseFileInUnzipedAar(type: Copy, dependsOn: 'unzipAar') {
        def fromDir = rootProject.file(libraryModuleName + '/')
        from fromDir
        into outputAarUnzipedDir
        include 'LICENSE.txt'
    }

    task reZipAar(type: Zip, dependsOn: 'addLicenseFileInUnzipedAar') {
        from outputAarUnzipedDir
        include '*'
        include '*/*'
        archiveName libraryModuleName + '-release.aar'
        destinationDir(outputAarDir)
    }

    afterEvaluate {
        bundleRelease.finalizedBy(reZipAar)
    }
}
然后,这些任务将添加到标准构建过程中

生成后的gradle控制台:

(...)
:your-library-module-name:bundleRelease
:your-library-module-name:unzipAar
:your-library-module-name:addLicenseFileInUnzipedAar
:your-library-module-name:reZipAar

我的gradle文件中没有“bundleRelease”任务和“uploadArchives”任务。gradle/android已经提供了一些标准任务。如何生成aar并分发库?我正在使用maven插件和上传存档任务,但也许你可以用另一种方式完成。我已经编辑了我的答案,这个解决方案也适用于简单的构建任务,所以应该可以。