簡體   English   中英

使用 Gradle(簽名)依賴項驗證時更新依賴項的步驟是什么?

[英]What are the steps to update dependencies when using Gradle (Signing) Dependency Verification?

下面的鏈接中有一個關於如何使用 Gradle 設置依賴項驗證的優秀指南:

https://docs.gradle.org/current/userguide/dependency_verification.html

簡而言之,初始設置就像運行以下 bootstrap 命令一樣簡單:

./gradlew --write-verification-metadata pgp,sha256

但是,沒有提供之后要做什么的步驟,例如當您需要更新依賴項時。

您是否希望每次更新依賴項時都再次運行 bootstrap 命令? 這與 gradle 文檔一樣不安全,如果出現問題,它將添加一個忽略列表值:

“如果由於某種原因,在生成過程中驗證失敗,Gradle 將自動生成一個被忽略的密鑰條目,但警告你必須絕對檢查發生了什么。”

或者您是否應該手動更新gradle/verification-metadata.xml文件,如果是這樣,執行該操作的步驟是什么?

期待有人解釋在使用 Gradle 依賴項驗證時更新依賴項的預期流程。

如果您更新依賴項,那么依賴項驗證將因更新的依賴項而失敗——正如預期的那樣。 您將獲得如下控制台日志(此處為添加的 Gradle 插件或更改的插件版本):

A problem occurred configuring root project 'my-test'.
> Dependency verification failed for configuration ':classpath'
  3 artifacts failed verification:
    - de.undercouch.download.gradle.plugin-4.1.1.pom (de.undercouch.download:de.undercouch.download.gradle.plugin:4.1.1) from repository Gradle Central Plugin Repository
    - gradle-download-task-4.1.1.jar (de.undercouch:gradle-download-task:4.1.1) from repository Gradle Central Plugin Repository
    - gradle-download-task-4.1.1.pom (de.undercouch:gradle-download-task:4.1.1) from repository Gradle Central Plugin Repository
  If the artifacts are trustworthy, you will need to update the gradle/verification-metadata.xml file by following the instructions at https://docs.gradle.org/7.1/userguide/dependency_verification.html#sec:troubleshooting-verification
  
  Open this report for more details: file:///home/chriki/my-test/build/reports/dependency-verification/at-1625085802054/dependency-verification-report.html

如果您隨后打開上述 HTML 報告,您將看到如下所示的表格:

模塊 神器 問題)
de.undercouch.download:de.undercouch.download.gradle.plugin:4.1.1 de.undercouch.download.gradle.plugin-4.1.1.pom 驗證元數據中缺少校驗和

(原始表格更好,並且具有可顯示更多詳細信息的可點擊列。)

此外,HTML 報告包含以下“疑難解答”部分:

請仔細查看上面報告的錯誤。 單擊錯誤說明附近的圖標,了解有關如何修復特定問題的信息。 建議您手動編輯驗證文件。 但是,如果您確信這些是誤報,Gradle 可以通過生成缺失的驗證元數據來幫助您。 在這種情況下,您可以使用以下命令行運行:

 gradle --write-verification-metadata sha256 help

在任何情況下,您都必須查看此操作的結果

所以,是的,您可以在更新依賴項后再次運行 bootstrap 命令。 然后它將通過新的/更新的依賴項添加為受信任來更新verification-metadata.xml文件。 就像在實際的引導階段一樣,您必須查看結果——HTML 報告也明確指出。 例如,您可以通過在運行 bootstrap 命令之前將verification-metadata.xml提交到 VCS 來執行此操作。 運行該命令后,將 VCS 版本與本地更新的版本進行比較,以確保僅添加了升級的依賴項(可能還有它們的傳遞依賴項),而沒有添加其他組件。

順便說一句,Gradle 文檔的“引導依賴驗證”部分還指出引導命令可用於更新(由我突出顯示):

引導可用於從頭開始創建文件,也可用於使用新信息更新現有文件。

暫無
暫無

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

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