如何在artifactory中检测重复工件

如何在artifactory中检测重复工件,artifactory,Artifactory,我知道artifactory使用基于校验和的存储,即使我上传多个同名的副本,它也只存储一个副本 由于我有许多项目的版本是匿名的,但可能是相同的JAR,我想知道是否有办法让artifactory告诉我哪些工件在多个ID下被引用。而artifactory没有提供此信息的现有功能,实际上,使用一个利用Artifactory特性的小脚本很容易实现 例如,可以编写一个树遍历器(使用),将校验和映射到文件(可以使用获取文件校验和) 或者,如果您使用Artifactory的Pro版本,您可以使用#检索存储库中

我知道artifactory使用基于校验和的存储,即使我上传多个同名的副本,它也只存储一个副本


由于我有许多项目的版本是匿名的,但可能是相同的JAR,我想知道是否有办法让artifactory告诉我哪些工件在多个ID下被引用。

而artifactory没有提供此信息的现有功能,实际上,使用一个利用Artifactory特性的小脚本很容易实现

例如,可以编写一个树遍历器(使用),将校验和映射到文件(可以使用获取文件校验和)

或者,如果您使用Artifactory的Pro版本,您可以使用

#检索存储库中所有工件的列表/bin/bash
#
#在artifactory中搜索,列出重复项angelos@unix.gr
#
搜索=$1
如果[“X$search”==“X”]
然后
回显“$0”
出口1
其他的
search=`echo$search|sed-e's/\%20/gi'`
search=“*${search}*”
fi
USER=`whoami`
PASS=${PASS:-somepass}
CREDS=${USER}:${PASS}
人工制品=https://artifactory.somesite.com/artifactory
curl-s-u${CREDS}-o search.txt${ARTIFACTORY}/api/search/artifact\?name=${search}
echo“所有URI的列表在search.txt中”
echo“所有$search实例都跟随”
回声“-------------------------------------”
grep$search search.txt | grep-v pom | awk{print$3}| xargs-i basename{}| sort | uniq-c | sort-rn

下面是针对PostGreSQL数据库运行的SQL。我还没有尝试过其他数据库

select sha1_actual, node_name, node_path, repo, *
from nodes
where sha1_actual in 
(
    select sha1_actual 
    from nodes
    where node_type != 0
    group by sha1_actual
    having count(1) > 1
)
order by sha1_actual
select sha1_actual, node_name, node_path, repo, *
from nodes
where sha1_actual in 
(
    select sha1_actual 
    from nodes
    where node_type != 0
    group by sha1_actual
    having count(1) > 1
)
order by sha1_actual