2017-06-02 71 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