在带有 Gradle 的 setting.xml 中使用 Maven 凭据

clo*_*her 2 continuous-integration dependencies artifactory gradle maven

我有一些 Gradle 项目,但我想避免在build.gradle文件中显式加载凭据。我想避免的一个例子是:

        maven {
            credentials {
                username "$maven_user"
                password "$maven_password"
            }
            url 'https://my-maven-repo'
        }
Run Code Online (Sandbox Code Playgroud)

我想,以避免有用户名和密码字段gradle.build,即使这些值可以从本地主机例如,从装载~/.gradle/gradle.properties
我想实现的是加载从证书~/.m2/settings.xml和唯一指定Maven仓库网址gradle.build
有可能这样做吗?我做了几次尝试,但看起来 Gradle 忽略了settings.xml

ToY*_*nos 6

试试Maven 设置插件

像这样设置:

新方法 :

plugins {
    id 'net.linguica.maven-settings' version '0.5'
}
Run Code Online (Sandbox Code Playgroud)

旧方式(Gradle 2.0 或更早版本):

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

    dependencies {
        classpath 'net.linguica.gradle:maven-settings-plugin:0.5'
    }
}

apply plugin: 'net.linguica.maven-settings'
Run Code Online (Sandbox Code Playgroud)

然后只需声明您的存储库:

repositories {
    maven {
        name 'your-repo'
        url 'http://.....'
    }
}
Run Code Online (Sandbox Code Playgroud)

假设~/.m2/settings.xml你有类似的东西:

<servers>
    <server>
        <id>your-repo</id>
        <username>user</username>
        <password>pass</password>
    </server>
</servers>
Run Code Online (Sandbox Code Playgroud)