如何将META-INF文件夹中的文件包含在Android Gradle的aar文件中?

7tofc5zh  于 2023-01-13  发布在  Android
关注(0)|答案(1)|浏览(312)

我们希望在AAR文件的META-INF文件夹下包含第三方许可证文件和pom文件。我们尝试了以下方法,并在“resources”下创建了一个文件夹“META-INF”

packagingOptions {
        resources {
            pickFirsts.add("META-INF/test.txt") // Just a test file to see if we can include
            merges.add("META-INF/test.txt")
        }
    }

但是aar文件的文件夹结构还是这样,META-INF文件夹

下没有添加文件
以下是我们的build.gradle文件的完整内容

plugins {
    id 'com.android.library'
    id 'kotlin-android'
    id 'org.jetbrains.dokka'
    id 'maven-publish'
}

apply from: '../jacoco.gradle'

android {
    compileSdkVersion 30

    defaultConfig {
        minSdkVersion 26
        targetSdkVersion 29
        testInstrumentationRunner "androidx.est.runner.AndroidJUnitRunner"
        buildConfigField 'String', "VERSION_NAME", '"1.0.0.0"'
        buildConfigField 'int', "VERSION_CODE", '1'
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
    testOptions {
        unitTests {
            includeAndroidResources = true
        }
    }
    packagingOptions {
        resources {
            pickFirsts.add("META-INF/test.txt")
            merges.add("META-INF/test.txt")
        }
    }
}
android.libraryVariants.all { variant ->
    variant.outputs.all { variantOutput -> outputFileName = "file.aar" }
}
dependencies {
...
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            pom {
                ...
            }
        }
    }
}

有没有人能告诉我们应该如何做到这一点?提前感谢!

0ve6wy6x

0ve6wy6x1#

packagingOptions {
    merges.add("META-INF/test.txt")
    // or
    //merge "META-INF/test.txt"
}

META-INF/test.txt将在AGP v3.3.0的classes.jar中找到

相关问题