簡體   English   中英

IntelliJ / Maven不會更新Artifactory中的工件

[英]IntelliJ/Maven not updating artifacts from Artifactory

我最近設置了一個受密碼保護的Artifactory服務器。 Jenkins服務器正在將我的工件部署到該Artifactory服務器上的maven存儲庫。

這是問題所在:
新版本在運行時(在IntelliJ中)也不可用於Maven(構建時)。 為了讓maven更新,我將從我的本地倉庫刪除工件。

如何告訴Maven / IntelliJ始終檢查最新版本?
即便這樣做也沒有:

<releases>
    <enabled>true</enabled>
    <updatePolicy>always</updatePolicy>
</releases>
<snapshots>
    <enabled>true</enabled>
    <updatePolicy>always</updatePolicy>
</snapshots>

有案件需要處理:

  1. 發布。 如果本地緩存中存在相同版本的發布二進制文件(Maven的~/.m2/存儲庫緩存或Artifactory的遠程存儲庫緩存),則Maven和Artifactory將永遠不會檢查更新的二進制文件。 強制Artifactory和Maven重新獲取發布工件的唯一方法是從緩存中刪除它 永遠不要為不同的blob使用相同的版本。
  2. 快照。 雖然唯一(文件名以時間戳結束)和非唯一(文件名以-SNAPSHOT ,因此它們違反我剛寫的規則,因此不使用它們)之間存在差異,但它們的檢索策略是相同的: Maven認為它們是可過期的資源 ,它偶爾會檢查一個新的blob,在同一個版本下發布。 Artifactory也是這樣做的:偶爾會將可過期資源聲明為“已過期”,因此下次Maven請求此資源時,Artifactory將獲取遠程存儲庫以檢查在同一版本下發布的新blob。 在這兩個工具中,您可以控制緩存周期並手動“快速刪除緩存”。
    • 在Maven中, <update-policy/>控制Maven檢查新snpashot的頻率,而--update-snapshots標志強制Maven立即檢查。
    • 在Artifactory中,遠程存儲庫配置中的Retrieval Cache Period參數控制Artifactory檢查新快照的頻率,以及工件瀏覽器屏幕中遠程存儲庫上的Zap Caches操作,確保Artifactory將在下一個請求中檢查新快照。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM