CJx*_*JxD 8 android gradle android-gradle-plugin
将Gradle升级到5.1.1后,我发现无法将其bundleReleaseAar作为工件添加到我的MavenPublication中。这是我的build.gradle的相关代码段:
apply plugin: 'maven-publish'
publishing {
publications {
aar(MavenPublication) {
groupId libraryGroupId
version libraryVersion
artifactId libraryArtifactId
artifact bundleReleaseAar
//artifact sourcesJar
//artifact packageJavadoc
}
}
}
Run Code Online (Sandbox Code Playgroud)
失败的原因是:
Could not get unknown property 'bundleReleaseAar' for object of type org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.
但是,我可以看到bundleReleaseAar在运行时确实存在./gradlew tasks,并且可以很好地执行该任务。
是什么阻止了它现在被用作我的部署中的工件?
Ros*_*han 15
简短答案:
您需要将发布{}块封装在项目中。afterEvaluate如下:
project.afterEvaluate {
publishing {
publications {
aar(MavenPublication) {
groupId libraryGroupId
version libraryVersion
artifactId libraryArtifactId
artifact bundleReleaseAar
//artifact sourcesJar
//artifact packageJavadoc
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
长答案:
在gradle 4.8版之前,对发布块进行隐式处理,就好像在评估项目后执行了其中的所有逻辑一样。这只是以这种方式运行的块,并且出于一致性的考虑,此行为在gradle版本4.8之后已终止。bundleReleaseAar任务似乎仅在项目评估完成后才可用,因此为了保持行为,必须将其显式封装在project.afterEvaluate {}中
参考:https : //docs.gradle.org/current/userguide/upgrading_version_4.html#rel4.8 : deferred_configuration
| 归档时间: |
|
| 查看次数: |
902 次 |
| 最近记录: |