Jfrog Artifactory - 用于删除带有工件的完整文件夹的Groovy脚本

时间:2017-02-08 03:02:09

标签: groovy artifactory

我正在研究Jfrog Artifactory - Groovy脚本,删除带有工件的完整文件夹。 我有一个文件夹2015.08.18.1.SNAPSHOT的存储库,它有子项2015.08.18.1.12345.pom,2015.08.18.1.12345.war,matadata.xml。使用下面的脚本我只能删除子项(2015.08.18.1.12345.pom,2015.08.18.1.12345.war,matadata.xml)而不删除文件夹(2015.08.18.1.SNAPSHOT),我的要求是删除文件夹。

def delete(RESTClient restClient, List itemsToDelete, def dryRun) {
    dryMessage = (dryRun) ? "*** This is a dry run ***" : "";
    itemsToDelete.each {
        println("Trying to delete artifact: '$it'. $dryMessage")
        try {
            if (!dryRun) {
                restClient.delete(path: it)
            }
            println("Artifact '$it' has been successfully deleted. $dryMessage")
        } catch (HttpResponseException e) {
            println("Cannot delete artifact '$it': $e.message" + ", $e.statusCode")
        } catch (HttpHostConnectException e) {
            println("Cannot delete artifact '$it': $e.message")
        }
    }
}

此处'itemsToDelete'持有'2015.08.18.1.SNAPSHOT'

1 个答案:

答案 0 :(得分:2)

Jfrog为Artifacory提供了Java客户端,可以在这种情况下使用 它已经包含预定义的http客户端,配置为使用Artifactory。
客户端和文档可在以下位置找到:https://github.com/JFrogDev/artifactory-client-java

使用客户端从Artifactory删除项目的示例:

Artifactory artifactory = ArtifactoryClient.create("ArtifactoryUrl", username", password");
String result = artifactory.repository("RepoName").delete("path/to/item");

请注意,该项目可以是文件夹或文件。