我有2个jenkins工作,第一个工作将jar文件发布到artifactory并向工件添加属性(commit id)。第二个作业总是从artifactory中提取最新版本的jar,但它也需要与该工件相关联的属性。我们正在使用gradle进行构建。有没有办法让它进入gradle或我们还有其他选择吗?
编辑:作业不是管道的一部分。这意味着它们是独立的工作,第二个工作在另一个存储库更改时触发。
答案 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。