如何在gradle构建脚本中读取artifactory的工件属性

时间:2017-01-23 22:53:57

标签: jenkins gradle properties artifactory

我有2个jenkins工作,第一个工作将jar文件发布到artifactory并向工件添加属性(commit id)。第二个作业总是从artifactory中提取最新版本的jar,但它也需要与该工件相关联的属性。我们正在使用gradle进行构建。有没有办法让它进入gradle或我们还有其他选择吗?

编辑:作业不是管道的一部分。这意味着它们是独立的工作,第二个工作在另一个存储库更改时触发。

2 个答案:

答案 0 :(得分:0)

第一个jenkins作业触发第二个参数化构建。

第二个构建可以使用Invoke Gradle script或命令行触发两种方式之一的gradle。

如果您使用Invoke Gradle script功能,则需要检查Pass job parameters as Gradle properties。然后假设您的构建二的参数名为commitId,您可以在代码中引用它,如此

if (project.properties.containsKey('commitId')) {
    println "do something with commitId: ${project.properties.get('commitId')}"
}

如果您只是使用命令行脚本,那么您可以传递这样的属性

./gradlew clean build -PcommitId=${commitId}

获取build.gradle内的属性的方法是相同的

答案 1 :(得分:0)

您可以使用Artifactory client(Java)来获取工件属性 例如:

Artifactory artifactory = ArtifactoryClient.create("http://localhost:8081/artifactory", "username", "password");
ItemHandle item = artifactory.repository("RepoName").file("path/to/file.jar");
List<String> values = item.getPropertyValues("commitId");

有关客户端的详细信息,请参阅其GitHub page