适用于 Android 的 Shadow Gradle 插件

问题描述 投票:0回答:2

有人成功使用 Shadow Gradle Plugin 生成 AAR 吗?我收到错误

Could not find method shadowJar()
。这是我的配置

plugins {
 id 'com.android.library'
 id 'kotlin-android'
 id 'com.github.johnrengelman.shadow' version '6.0.0'
}

android { ... }

shadowJar {
 baseName = 'shadow'
 classifier = ''
 archiveVersion = ''
}
android gradle shadow fatjar
2个回答
0
投票

这是在

shadowJar
文件中声明
build.gradle
任务的正确方法:

应用插件

plugins {
    ...
    id "com.github.johnrengelman.shadow" version "6.1.0"
}

导入

import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar

写下任务

task shadowJar(type: ShadowJar) {
    println("Hello from shadowJar task")
}

0
投票

对于 Android,您最好的选择是创建自己的

ShadowJar
任务实例,而不是尝试使用
shadowJar
扩展。它最终会看起来像这样(例如
build.gradle.kts
):

import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar

 val task = project.tasks.register("yourShadowTask", ShadowJar::class.java {
    from(allJarsForRelocation)
    relocations.forEach {
        val (namespaceFrom, namespaceTo) = it
        relocate(namespaceFrom, namespaceTo)
    }
}

这里有一个存储库链接,以更复杂的方式说明了这一点

© www.soinside.com 2019 - 2024. All rights reserved.