如何在各种情况下将 Maven (Nexus) 凭证传递给 build.gradle 文件?

How to pass Maven (Nexus) credentials to build.gradle file in various situations?

Gradle Mac OS Catalina(在我的情况下)上的 v3.4.1(旧,但这是另一个主题)。

我们正在使用 Nexus 存储库进行构建,我在 $HOME/.gradle/gradle.properties 文件中定义了我的信用。以下 build.gradle 语法适用于我们的 Bitbucket 管道和 Jenkins 运行。我将凭据存储在我的 Bitbucket 存储库和 Jenkins 凭据插件中。

repositories {
    mavenLocal()
    maven {
        url "$ZIFT_MAVEN"
        credentials {
            username System.getenv("NEXUS_USR")
            password System.getenv("NEXUS_PSW")
        }
    }
}

我也是

$ ./gradlew clean build -x test -PNEXUS_USR=*** -PNEXUS_PSW=***

与流行的说法相反,"It does NOT work on my machine!" 哈哈。

这在我的本地机器上确实有效,但在 Jenkins 或 Bitbucket 管道中无效。

repositories {
    mavenLocal()
    maven {
        url "$ZIFT_MAVEN"
        credentials {
            username "$NEXUS_USR"
            password "$NEXUS_PSW"
        }
    }
}

而我只是这样做

$ ./gradlew clean build -x test

适用于所有情况的唯一方法是什么 - 本地、Jenkins、Bitbucket 管道?

谢谢!

这对我有用

maven {
    url "$ZIFT_MAVEN"
    credentials {
        username (System.getenv("NEXUS_USR") != null ? System.getenv("NEXUS_USR") : "$NEXUS_USR")
        password (System.getenv("NEXUS_PSW") != null ? System.getenv("NEXUS_PSW") : "$NEXUS_PSW")
    }
}