gpt4 book ai didi

android - 如何在 gradle 6.0+ 上将类/枚举添加到设置 gradle 脚本?

转载 作者:行者123 更新时间:2023-12-03 03:25:24 24 4
gpt4 key购买 nike

我想添加一个名为 modules 的枚举,其中包含子模块的路径和一些编译类型。

我曾经在 gradle 6 之前的 buildSrc 中有这个,它可以在 settings.gradle 中访问

但是从 gradle 6.0 开始,settings.gradle 在 buildSrc 项目之前编译。我已将我的枚举移动到 settings.gradle,现在其他项目级别的 gradle 脚本无法访问它。

以下发行说明中概述了行为更改。
https://docs.gradle.org/current/userguide/upgrading_version_5.html#changes_to_plugins_and_build_scripts

他们建议将 settings.gradle 中使用的枚举/类添加到构建脚本闭包中,但我不确定该怎么做。

https://docs.gradle.org/current/userguide/upgrading_version_5.html#plugins_and_classes_loaded_in_settings_scripts_are_visible_to_project_scripts_and_buildsrc

最佳答案

我最近遇到了一个类似的问题,我的公司有自定义代码用于通过我们保留在 buildSrc 中的 Nexus 进行身份验证。我不能把它变成一个插件,因为我需要将它存储在我们的 Nexus 中,然后会处于 catch-22 情况,因为我需要进行身份验证才能获得身份验证插件!
我可以看到 2 个潜在的解决方法:

  • 公开发布的jar .

  • 将您的自定义类构建为单独的 jar,或者如果适合用例,则构建为 Gradle 插件。将 jar 发布到可以从 settings.gradle 访问的 maven 存储库buildscript(对我来说这很困难,因为它是敏感的公司特定代码)。
    这在您的 settings.gradle 中可能类似于以下内容:
    include "project-name"

    buildscript {
    repositories {
    mavenCentral()
    }
    dependencies {
    classpath 'com.companyname:gradle-utils:0.0.1'
    }
    }

  • 提交二进制文件

  • 这不是一个理想的选择,但您可以在另一个存储库中管理自定义 buildSrc 类的源代码,然后每次对它们进行更改(希望不经常) - 您可以构建新版本并将构建的 jar 提交到需要使用它的存储库(可能在 buildSrc 下)。如果您的自定义代码在 gradle 运行时具有不在类路径上的依赖项,则您还需要将它们打包到您提交的 jar 中。
    您的 settings.gradle可能看起来像:
    include "project-name"

    buildscript {
    dependencies {
    classpath files("buildSrc/gradle-utils.jar")
    }
    }

    关于android - 如何在 gradle 6.0+ 上将类/枚举添加到设置 gradle 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62260614/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com