
将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 } }}这失败了:
无法为org.gradle.API.publish.maven.internal.publication.DefaultMavenPublication类型的对象获取未知属性’bundleReleaseAar’.
但是,当我运行./gradlew任务时,我能够看到bundleReleaseAar确实存在,并且我可以很好地执行该任务.
什么阻止它现在在我的部署中用作工件?
解决方法:
简答:
您需要将publication {}块包含在project.afterEvaluate中,如下所示:
project.afterEvaluate { publishing { publications { aar(MavenPublication) { groupID libraryGroupID version libraryVersion artifactID libraryArtifactID artifact bundleReleaseAar //artifact sourcesJar //artifact packageJavadoc } } }}答案很长:
在gradle版本4.8之前,隐式地将发布块视为在评估项目之后执行其中的所有逻辑.这只是以这种方式表现的块,为了一致性,这个行为在gradle版本4.8之后停止了. bundleReleaseAar任务似乎只有在项目评估完成后才可用,因此为了维护行为,必须将它显式地包含在project.afterEvaluate {}中.
参考:https://docs.gradle.org/current/userguide/upgrading_version_4.html#rel4.8:deferred_configuration
总结以上是内存溢出为你收集整理的android – 不再能够在MavenPublication中使用bundleReleaseAar全部内容,希望文章能够帮你解决android – 不再能够在MavenPublication中使用bundleReleaseAar所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)