[英]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.