首页 > 解决方案 > Android - 用于重复 maven 项目存储库模板的 gradle 脚本或函数

问题描述

在我的 Android 项目的顶级 build.gradle 文件中,我必须导入几个 maven 项目存储库。结构如下所示:

allprojects {
  repositories {
    google()
    jcenter()

    // How can I avoid this duplicate code block?
    maven {
      url "https://my_maven_project_url"
      credentials(HttpHeaderCredentials) {
        def jobToken = System.getenv("CI_JOB_TOKEN")
        if (jobToken == null || jobToken.empty) {
          name = "Private-Token"
          value = "myAccessToken"
        } else {
          name = "Job-Token"
          value = jobToken
        }
      }
      authentication {
        header(HttpHeaderAuthentication)
      }
    }

url"https://my_maven_project_url"并且"myAccessToken"是我需要为每个项目传递的两件事。我可以编写一个脚本或一个函数,基本上maven { ... }将这部分作为模板,我只为每个项目传递这两个值吗?

问题是我认为在函数中我们需要以maven { ... }编程方式而不是像上面显示的模板形式创建部分,但我可能理解不正确......

标签: androidmavengradlebuild.gradle

解决方案


你可以写这样的方法

ext.myMethod = { param1, param2 ->
        // Method body here
    }

并调用方法

myMethod('param1', 'param2')

推荐阅读