有人成功使用 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 = ''
}
这是在
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")
}
对于 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)
}
}
这里有一个存储库链接,以更复杂的方式说明了这一点