Android:如何在aar中包含license.txt文件?
我想在.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
提前感谢。您可以通过添加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插件和上传存档任务,但也许你可以用另一种方式完成。我已经编辑了我的答案,这个解决方案也适用于简单的构建任务,所以应该可以。