我有2个jenkins作业,第一个作业将jar文件发布到artifactory并向该构件添加属性(commit id)。第二个工作总是从artifactory中提取最新版本的jar,但它也需要与该工件相关的属性。我们正在使用gradle来构建我们的版本。有没有办法让它在gradle里面,或者我们有其他的选择吗?如何在gradle构建脚本中读取artifactory的构件属性
编辑:作业不是管道的一部分。这意味着它们是独立的作业,另一个存储库中的第二个作业触发器会发生变化
我有2个jenkins作业,第一个作业将jar文件发布到artifactory并向该构件添加属性(commit id)。第二个工作总是从artifactory中提取最新版本的jar,但它也需要与该工件相关的属性。我们正在使用gradle来构建我们的版本。有没有办法让它在gradle里面,或者我们有其他的选择吗?如何在gradle构建脚本中读取artifactory的构件属性
编辑:作业不是管道的一部分。这意味着它们是独立的作业,另一个存储库中的第二个作业触发器会发生变化
第一个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
中的属性都是一样的
您可以使用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。
感谢您的回答。我在我的答案中添加了一个编辑。 我的2个工作是独立的工作,我不想每次开始第一份工作时触发第二份工作,反之亦然。 – Sujji