2017-01-23 69 views
1

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

编辑:作业不是管道的一部分。这意味着它们是独立的作业,另一个存储库中的第二个作业触发器会发生变化

回答

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中的属性都是一样的

+0

感谢您的回答。我在我的答案中添加了一个编辑。 我的2个工作是独立的工作,我不想每次开始第一份工作时触发第二份工作,反之亦然。 – Sujji

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

相关问题