首页 > 解决方案 > 如何根据构建变体在 gradle 发布任务中选择 maven url?

问题描述

我正在开发一个 Android 应用程序,其中各种模块需要存在于不同的 git 存储库中。每个 git repo 都会将其 AAR 文件发布到 maven repo。然后其他 git repos 将从 maven repo 中提取 AAR 文件。

但是,我需要根据构建变体修改设置。我需要根据构建变体选择 Maven URL。

所以,如果我跑: ./gradlew publishVariant1那么我会得到https://my.maven-repo.website/type1.

但是,如果我跑步./gradlew publishVariant2,我会得到https://my.maven-repo.website/type2

如果我需要使用这样的命令行,./gradlew publish -PsomeBuildVariantProp=variant1我很好。我只是不知道如何设置它。我尝试android.libraryVariants.all { variant -> ... repositories { maven { if (variantName.equals("variant1") { url "..." } else if (variantName.equals("variant2") { url "..." } } }在我的发布块中使用来选择 URL。但是,当我在每种情况下打印 URL 时,我会看到打印的所有可能的 URL。

那么,如何设置我的发布任务以通过构建变体选择 Maven URL?

标签: mavenandroid-gradle-pluginpublish

解决方案


好的,我想通了。我做了./gradlew -PbuildVariant=variant1 publish,然后buildVariant = property.findProperty("buildVariant") ?: "variant1"在我的发布任务中做了,并使用该值来选择一个 URL。


推荐阅读