gpt4 book ai didi

android - 不再能够在 MavenPublication 中使用 bundleReleaseAar

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:36:15 25 4
gpt4 key购买 nike

将 Gradle 升级到 5.1.1 后,我发现无法将 bundleReleaseAar 作为 Artifact 添加到我的 MavenPublication。这是我的 build.gradle 的相关 fragment :

apply plugin: 'maven-publish'

publishing {
publications {
aar(MavenPublication) {
groupId libraryGroupId
version libraryVersion
artifactId libraryArtifactId

artifact bundleReleaseAar
//artifact sourcesJar
//artifact packageJavadoc
}
}
}

这失败了:

无法为 org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication 类型的对象获取未知属性“bundleReleaseAar”。

但是,当我运行 ./gradlew tasks 时,我能够看到 bundleReleaseAar 确实存在,并且我可以很好地执行该任务。

现在是什么阻止它在我的部署中用作 Artifact ?

最佳答案

简答:

您需要将发布 {} block 包含在 project.afterEvaluate 中,如下所示:

project.afterEvaluate {
publishing {
publications {
aar(MavenPublication) {
groupId libraryGroupId
version libraryVersion
artifactId libraryArtifactId

artifact bundleReleaseAar
//artifact sourcesJar
//artifact packageJavadoc
}
}
}
}

长答案:

在 gradle 版本 4.8 之前,发布 block 被隐式处理,就好像它里面的所有逻辑都是在项目评估后执行的。这只是 block 以这种方式表现,为了保持一致性,这种行为在 gradle 版本 4.8 后停止。 bundleReleaseAar 任务似乎只有在项目评估完成后才可用,因此为了保持行为,它必须明确包含在 project.afterEvaluate{}

引用:https://docs.gradle.org/current/userguide/upgrading_version_4.html#rel4.8:deferred_configuration

关于android - 不再能够在 MavenPublication 中使用 bundleReleaseAar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55864101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com