gradle - 通过 maven-publish 在 gradle 中设置凭据

标签 gradle build.gradle

我正在使用 gradle v3.4 并从 secrets.properties 文件(传递到 project.ext)中填充了属性,但是当我使用凭据部分中的变量时,我收到了一个错误,从符合身份验证问题的 nexus 这让我相信字符串插值无法正常工作。我可以在凭据部分之前打印变量值。

build.gradle

        maven {
            credentials {
println(project.nexusUsername)  //prints the value
                username '${project.nexusUsername}'
                password '${project.nexusPassword}'
            }
            if (project.version.endsWith("-SNAPSHOT")) {
                url "http://nexus.somewhere.com/repository/some-java-snapshot/"
            } else {
                url "http://nexus.somewhere.com/repository/some-java-release/"
            }
        }

更新
我更新了上面的凭据部分以使用双引号(不是单引号),但这并没有解决问题。单引号是字符串文字——如果需要字符串插值,则需要在 groovy 中使用双引号。

最佳答案

问题是如何在外部属性文件中指定属性。我对属性文件中的字符串值使用双引号,这导致身份验证失败。从外部属性文件中删除双引号后,我就可以发布到 nexus。

外部属性文件设置不正确

someUsername="someuser"

更正外部属性文件设置
someUsername=someuser

build.gradle
publishing {
    publications {
        shadow(MavenPublication) {
            from components.shadow
            groupId project.group
            artifactId project.artifactId
        }
    }
    repositories {
        maven {
            credentials {
                username project.someUsername
                password project.somePassword
            }
            if (project.version.endsWith("-SNAPSHOT")) {
                url project.someSnapshot
            } else {
                url project.someRelease
            }
        }
    }
}

这有效。

关于gradle - 通过 maven-publish 在 gradle 中设置凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43901251/

相关文章:

java - 如何修复 proguard 警告 'can' t 为 java.lang.Object 类的现有方法 'clone' 和 'finalize' 找到引用的方法

更新 Android Studio 1.3 后出现 Android 错误

java - Eclipse Gradle 项目未找到 JUnit 测试

gradle - 应用编写为Groovy的自定义插件

gradle - 无法解析 org.jetbrains.kotlin :kotlin-gradle-plugin:1. 2.51

gradle - 在插件发布期间排除文件和文件夹

java - 找不到 Gradle DSL 方法 :'compileOptions()'

spring-boot - 找不到SpringBoot EntityManagerFactory

android - 尝试配置 firebase 时,Gradle 构建失败,并出现项目编译错误?

Java 和 Kotlin 组合构建错误(Duplicate Zip Entry)