我有一个本地Artifactory服务器,它定义了一堆本地存储库。我已经设置了一个虚拟存储库,并将其配置为对通过它检索的任何JAR文件进行签名。
libs-signed
虚拟存储库已连接到libs-staging-local
和libs-snapshot-local
,因此您可以从这两个存储库中获取任何jar并通过我们的证书对其进行签名。
如果我通过签名虚拟仓库从登台仓库中获取JAR,那么我第一次必须等到签名过程完成,但由于虚拟存储库缓存,同一工件之后的任何请求都很快。 / p>
但是,如果我通过签名虚拟仓库从快照存储库中获取JAR,我总是在JAR签名时获得等待时间(并且我已经验证了jarsigner进程在服务器上启动了每次)。因此,不会缓存源自快照存储库的已签名工件。我确保在两次抓取之间没有添加任何新的快照版本,因此原始(未签名)文件完全相同。
有人知道发生了什么吗?如何让虚拟存储库缓存签名的快照JAR?
答案 0 :(得分: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可能会返回错误的工件。