gradle - Maven发布存储库凭据取决于自定义任务

标签 gradle build.gradle maven-publish

我有一个自定义任务,可从服务器获取凭据:

task getToken {
    ext.token = // curl whatever
}

我想在出版物存储库的凭据块中使用此任务的输出,如下所示:
publishing {
    publications {
        myPublication(MavenPublication) {
            from components.java
        }
    }

    repositories {
        maven {
            url = "https://somewhere.com/repo"

            credentials {
                username System.properties['user.name']
                password getToken.token
            }
        }
    }
}

但是,我不知道那里的凭据何时解析,显然getToken任务需要事先完成。

我该如何实现?

最佳答案

这可以通过以下插件实现:https://plugins.gradle.org/plugin/pl.unity.lazy-credentials

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }

    dependencies {
        classpath "gradle.plugin.pl.unity.gradle:lazy-credentials:1.2.1"
    }
}

apply plugin: "pl.unity.lazy-credentials"

publishing {
    publications {
        myPublication(MavenPublication) {
            from components.java
        }
    }

    repositories {
        maven {
            url "https://somewhere.com/repo"
            lazyCredentials {
                username System.properties['user.name']
                password {
                    // some code here to request the token
                }
            }
        }
    }
}

关于gradle - Maven发布存储库凭据取决于自定义任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57496215/

相关文章:

android - 在 Gradle 中定义为每个构建类型运行的任务

android - Gradle 复制任务始终是最新的

java - 如何在 jar 中包含 Groovy 扩展方法?

android - 在构建之前,如何获得执行任务的资格?

spring-boot - 在集成测试开始之前运行Firestore Emulator

android - 如何以编程方式访问Android中的apk生成时间?

Android/任务 checkDebugAarMetadata 执行失败/执行 CheckAarMetadataWorkAction 时发生故障

gradle - 无法使用 gradle 编译虚拟类

android - 设计支持库 v22.2 "UNEXPECTED-TOP-LEVEL EXCEPTION"