【发布时间】:2015-07-31 16:08:39
【问题描述】:
使用 Jenkins Artifactory 插件和 Gradle,我能够成功部署到我的 Artifactory 实例。但是,我无法使用输入到 Jenkins 配置中的凭据来解析来自同一存储库的工件。
这里是build.gradle,直接来自 Artifactory 中 Artifactory 的“生成构建脚本”功能。
apply plugin: 'java'
sourceCompatibility = 1.5
version = '1.0'
buildscript {
repositories {
maven {
url 'http://artifactory.myorg.com:8081/artifactory/plugins-release'
credentials {
username = "${artifactory_user}"
password = "${artifactory_password}"
}
}
}
dependencies {
//Check for the latest version here: http://plugins.gradle.org/plugin/com.jfrog.artifactory
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.3"
}
}
allprojects {
apply plugin: "com.jfrog.artifactory"
}
artifactory {
contextUrl = "${artifactory_contextUrl}" //The base Artifactory URL if not overridden by the publisher/resolver
publish {
repository {
repoKey = 'libs-release-local'
username = "${artifactory_user}"
password = "${artifactory_password}"
maven = true
}
}
resolve {
repository {
repoKey = 'libs-release'
username = "${artifactory_user}"
password = "${artifactory_password}"
maven = true
}
}
}
dependencies {
compile group: "com.myorg", name: "internal-library", version: '1.0'
testCompile group: 'junit', name: 'junit', version: '4.11'
}
Jenkins 上的作业配置:
Jenkins Artifactory 插件配置:
错误:
FAILURE: Build failed with an exception.
* Where:
Build file '/var/lib/jenkins/jobs/deleteme/workspace/build.gradle' line: 10
* What went wrong:
A problem occurred evaluating root project 'untitled2'.
> Could not find property 'artifactory_user' on Credentials [username: null].
在本地,解析工件有效(artifactory_user 等已解决,因为我在本地 ~/.gradle/gradle.properties 中配置了它们)。但是,构建失败,因为未定义 artifactory_user。当然,我可以配置一个gradle.properties 供 Jenkins 使用(这很有效),但是这个 supposed 是如何工作的?看来 Jenkins Artifactory Plugin Gradle 集成应该以某种方式传达解析器凭据。有没有办法做到这一点,而无需在 Jenkins 的两个地方复制凭据?
【问题讨论】:
标签: jenkins gradle artifactory