Gitlab部署maven的方法-适配AGP7.1+

背景是这个博客:Gitlab部署maven的方法 https://blog.csdn.net/yeshennet/article/details/125121537

我用上面的方法自己生产aar发布到gitlab-maven上。

最近升级了AGP,遇到问题,报错如下:

* What went wrong:
Failed to query the value of property 'buildFlowServiceProperty'.
> Could not isolate value 
> org.jetbrains.kotlin.gradle.plugin.statistics.BuildFlowService
> $Parameters_Decorated@7f455421 of type BuildFlowService.Parameters
> A problem occurred configuring project ':libyeshen'.
> Could not get unknown property 'release' 
> for SoftwareComponent container of type org.gradle.api.internal.component.
> DefaultSoftwareComponentContainer.

解决方法

在 libyeshen/build.gradle 的 android 模块中添加 如下 publishing 函数

android {
  publishing {
    singleVariant("release") {
        withSourcesJar()
    }
  }
}

原因

https://developer.android.com/build/publish-library/configure-pub-variants?hl=zh-cn

Android Gradle 插件 (AGP) 7.1 引入了网域专用语言 (DSL),以控制在发布期间使用哪些 build 变体以及忽略哪些 build 变体。借助 DSL,您可以创建包含以下内容之一的 SoftwareComponent 实例:

  • 来自一个 build 变体的一个发布内容变体
  • 来自多个 build 变体的多个发布内容变体

创建具有多个发布内容变体的软件组件时,AGP 会为每个变体设置属性,以便使用者能够选择自己需要的适当变体。这些属性直接来自用于创建 build 变体的 build 类型和变种。创建具有单个发布内容变体的组件不需要属性,因为不需要进行任何区分。

创建具有单个发布内容变体的软件组件
以下代码段会使用从 release build 变体创建的单个发布内容变体来配置软件组件,并将源代码 JAR 添加为辅助工件:

android {
  publishing {
    singleVariant("release") {
        withSourcesJar()
    }
  }
}

您可以创建多个组件,每个组件都包含一个发布内容变体,并在不同 Maven 坐标下分发这些组件。在这种情况下,发布内容变体上不会设置任何属性。您无法通过查看发布内容元数据来判断此发布内容变体是否来自 release build 变体。由于只涉及一个发布内容变体,因此无需消除歧义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值