Развертывание Gradle Artifactory завершается неудачно при использовании сгенерированных gradle.properties - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть следующий файл build.gradle:

plugins {
    id 'java-gradle-plugin'
    id 'com.gradle.plugin-publish' version '0.10.1'
    id 'groovy'
    id 'maven-publish'
    id "com.jfrog.artifactory" version "4.9.1"
}

group = 'de.gafertp'
version = '2.0.0'

repositories {
    mavenCentral()
}

dependencies {
    compile 'net.sourceforge.plantuml:plantuml:1.2019.1'

    testCompile 'org.junit.jupiter:junit-jupiter-api:5.4.0'
    testCompile 'org.junit-pioneer:junit-pioneer:0.3.0'
    testRuntime 'org.junit.jupiter:junit-jupiter-engine:5.4.0'
}

gradlePlugin {
    plugins {
        plantUmlPlugin {
            id = 'de.gafertp.plantuml'
            displayName = 'Gradle PlantUML Plugin'
            description = 'A very simple plugin to render PlantUML files. ' +
                    'Takes a set of diagram files together with desired output files / formats ' +
                    'and renders them with PlantUML (http://plantuml.com/).'
            implementationClass = 'de.gafertp.PlantUmlPlugin'
        }
    }
}

pluginBundle {
    website = 'https://github.com/codecholeric/gradle-plantuml-plugin'
    vcsUrl = 'https://github.com/codecholeric/gradle-plantuml-plugin'
    tags = ['plantuml']
}

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

artifactory {
    contextUrl = "${artifactory_contextUrl}"
    publish {
        repository {
            repoKey = 'gradle-dev-local'
            username = "${artifactory_user}"
            password = "${artifactory_password}"
            println "username=${artifactory_user}"
            println "password=${artifactory_password}"
            maven = true
        }
        defaults {
            publications('plantUmlPluginJar')
        }
    }
    resolve {
        repository {
            repoKey = 'gradle-dev'
            username = "${artifactory_user}"
            password = "${artifactory_password}"
            maven = true
        }
    }
}

test {
    useJUnitPlatform()
}

И этот файл gradle.properties:

artifactory_user=${security.getCurrentUsername()}
artifactory_password=${security.getEncryptedPassword()!"blahblah"}
artifactory_contextUrl=http://localhost:8081/artifactory

Сборка завершается со следующей ошибкой:

Execution failed for task ':artifactoryDeploy'.
> java.io.IOException: Failed to deploy file. Status code: 401 Response message: Artifactory returned the following errors:
  Unauthorized Status code: 401

Если мы посмотрим на напечатанные имя пользователя и пароль, то увидим следующее:

username=${security.getCurrentUsername()}
password=${security.getEncryptedPassword()!"blahblah"}

Gradle принимает значения свойств в виде буквенных строк вместо их оценки.Таким образом, проблема заключается в том, что объект security не может быть найден, потому что, если я заменю свойства в файле build.gradle непосредственно на их значения, произойдет следующая ошибка:

A problem occurred evaluating root project 'gradle-plantuml-plugin'.
> Could not get unknown property 'security' for object of type org.jfrog.gradle.plugin.artifactory.dsl.DoubleDelegateWrapper.

Что я делаюнеправильно?Развертывание работает нормально при использовании открытого имени пользователя и пароля, но я хотел бы использовать автоматически сгенерированный способ входа в систему (используя зашифрованный пароль).

1 Ответ

0 голосов
/ 21 февраля 2019

Кажется, что gradle.properties должно выглядеть так:

username=your_username
password=blahblah

Мы предполагаем, что blahblah - это ваш зашифрованный пароль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...