使用Gradle 7.2
和这些插件:
plugins {
id 'com.android.library' // Android Gradle Plugin 7.1.2
id 'maven-publish'
}
它仍然可以工作,但给了我这个不赞成的警告:
警告:不会为Android Gradle插件8.0中的Maven发布自动创建软件组件。要选择加入未来行为,请在gradle.properties
文件中设置Gradle属性android.disableAutomaticComponentCreation=true
或使用新的发布DSL。
发行说明中也提到了这一点,但这些都是指过时的文档:
从AGP 8.0开始,默认情况下将禁用自动组件创建。目前,AGP 7.1会自动为每个构建变体创建一个组件,该组件与构建变体具有相同的名称,并创建一个包含所有构建变体的所有组件。此自动组件创建将被禁用。要转换到新行为,你应该通过设置android.disableAutomaticComponentCreation
到true
手动禁用自动组件创建。
有关详细信息,请参见Use the Maven Publish plugin。
但在文件gradle.properties
中启用AGP 8.0默认行为预览时:
android.disableAutomaticComponentCreation=true
找不到属性components.release
:
FAILURE: Build failed with an exception.
* Where:
Script 'publish.gradle' line: 53
* What went wrong:
A problem occurred configuring project ':library'.
> Could not get unknown property 'release' for SoftwareComponentInternal set of type org.gradle.api.internal.component.DefaultSoftwareComponentContainer.
有问题的一行内容如下:
release(MavenPublication) {
from components.release
}
变量is仍然存在,但它不再创建组件:
androidComponents {
onVariants(selector().all(), {
println "$it.name"
})
}
如何升级到这个"新的发布DSL"并创建要发布的软件组件?
4条答案
按热度按时间kx1ctssn1#
根据
PublishingOptions
,必须定义一个android.publishing
块:要一次定义多个变量:
然后,例如
components.getByName('release')
将再次已知。mm9b1k5b2#
Android Studio团队刚刚在https://developer.android.com/studio/publish-library/configure-pub-variants上发布了一些有用的用户文档
dy1byipe3#
在android目录中的gradle.properties文件中,您可以添加以下行以禁用此警告
enter image description here
r7knjye24#
若要避免此警告,可以在gradle.properties文件中添加