2017-06-02 66 views
0

我有一个本地Artifactory服务器,有一堆本地存储库定义。我建立了一个虚拟仓库并将其配置为签名通过它检索的任何JAR文件。Artifactory JAR签署虚拟回购不缓存本地快照回购

libs-signed虚拟存储库连接到libs-staging-locallibs-snapshot-local,因此您可以从这两个存储库中获取任何jar,并让它们由我们的证书签名。

如果我通过签名虚拟回购从暂存回购中获取JAR,首次必须等待签名过程完成,但是由于虚拟存储库高速缓存,同一产品之后的任何请求都会很快。但是,如果我通过签名虚拟回购从快照存储库获取JAR,我总是会在JAR签名时获得等待时间(并且我已验证每个服务器上的jarsigner进程都已启动时间)。因此,源自快照库的已签名工件未被缓存。我已经确定在两次提取之间没有添加任何新的快照版本,因此原始(未签名)的文件完全相同。

有人知道这是怎么回事吗?如何让虚拟存储库缓存已签名的快照JAR?

+0

您正在创建独特还是非独特的快照? –

+0

如果是非唯一的,那么表示我们是否拥有多个用于相同版本号的JAR(例如,5.25-SNAPSHOT),然后是。如果我进入Artifactory用户界面,我可以看到该版本后面有10个JAR(每个都标有时间戳)。不过,如果你两次获取相同的JAR,我会希望Artifactory能够缓存。 – StFS

回答

0

缓存行为取决于如何解析非唯一快照。
如果快照正在被请求的具体时间戳神器签署的.jar将被缓存,例如解决:

http://localhost:8081/artifactory/libs-snapshot/org/jfrog/test/multi1/3.5-SNAPSHOT/multi1-3.5-20170105.183200-4.jar 

但是如果快照是通过请求解析 - 签名的.jar将不会被缓存,例如:

http://localhost:8081/artifactory/libs-snapshot/org/jfrog/test/multi1/3.5-SNAPSHOT/multi1-3.5-SNAPSHOT.jar 

的原因是,对于这样的请求返回的神器可能会改变,通过缓存它,Artifactory的可能会返回一个错误的神器。

+0

实际上并没有解决我的问题,但它看起来像这个答案是“正确的”。然而,Artifactory应该能够认识到非时间戳工件URL背后的工件是否已经被请求并被检索(并因此被缓存)。我感到失望的是,事实并非如此。 – StFS