當我運行以下專案https://github.com/deanhiller/webpieces
- /gradlew 發布
它將所有工件放在 /tmp/myRepo 中以用于開發版本。我不明白的是為什么會生成這么多哈希檔案->
- 核心-asyncserver-2.1-developer.jar
- 核心異步服務器 2.1-developer.jar.md5
- 核心異步服務器 2.1-developer.jar.sha1
- core-asyncserver-2.1-developer.jar.sha256
- 核心-asyncserver-2.1-developer.jar.sha512
這真的有必要嗎?我們不能只生成 1 個哈希檔案之類的東西嗎?
uj5u.com熱心網友回復:
簡而言之,生成校驗和是因為 Gradle 不知道工件將被托管在哪里,并且不同的主機接受不同的標準。
(要了解有關校驗和重要性的更多資訊,您可以閱讀Gradle 檔案,該檔案從消費者的角度描述了它們的使用。)
MD5 和 SHA1 被“視為密碼損壞”,但(截至 2019 年 1 月 10 日),同時使用兩者是安全的。Gradle 6.0 添加 SHA265 時會注意到這一點。
Gradle 6.0.1 添加了禁用 SHA256 和 SHA512 校驗和的選項。
添加
-Dorg.gradle.internal.publish.checksums.insecure=true到 CLI 或添加systemProp.org.gradle.internal.publish.checksums.insecure=true到您的gradle.properties檔案
2020 年 1 月要求對校驗和生成進行更細粒度的控制,但遭到拒絕。
因此生成 4 個校驗和是為了最大限度地提高兼容性。我不會太在意它們,它們是小檔案并且可以快速生成。可以創建一個自定義 Gradle 任務來洗掉這些檔案,但我建議不要這樣做,因為默認值可以正常作業,并且稍后調整它們可能會導致問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/431667.html
上一篇:Quarkus Kogito構建錯誤:java.lang.IllegalStateException:在java.time.LocalDateTime的jandex索引中找不到類資訊
