我是 Gradle 和 Minecraft 改裝的新程式員。我嘗試使用命令設定 Minecraft forge build.gradle檔案
./gradlew genVSCodeRuns
在 VSCode 的命令列中。每次在下載兩個所需檔案的程序中失敗時都會出現這種錯誤訊息:
> Could not download icu4j-66.1.jar (com.ibm.icu:icu4j:66.1)
> Could not get resource 'https://maven.minecraftforge.net/com/ibm/icu/icu4j/66.1/icu4j-66.1.jar'.
> Premature end of Content-Length delimited message body (expected: 12,935,630; received: 6,397,856)
由于我認為這是由于互聯網問題,我嘗試將兩個所需的 jar 檔案下載到本地并將它們保存在 libs 檔案夾中。但是,當我在 Gradle 開始使用以下腳本自動下載它們之前嘗試實作它們時,Gradle 繼續下載它們。
dependencies {
implementation fileTree(dir:'libs',includes:['*jar'])
}
我現在想知道使用這些下載的 jar 檔案作為快取并防止build.gradle再次下載它們的正確腳本是什么。
我查看了類似的問題,但不知道將快取檔案放在哪里。只有正確放置快取檔案,才能使用 Gradle 的離線模式構建專案。
uj5u.com熱心網友回復:
我自己想出了解決方案。
目標是將下載的檔案添加到本地快取,以命令 Gradle 使用此檔案快取,而不是從 Internet 重新下載檔案。
在這樣做之前,我們需要確保檔案的大小與所需的大小相同。由于我的網路連接不佳,我曾經只下載了 6mb,而實際大小為 18mb。
要將其添加到本地快取,請按照以下步驟操作。
首先,添加一個環境變數GRADLE_USER_HOME。
然后,jar 檔案快取將存盤在路徑:
/%GRADLE_USER_HOME%/caches/modules-2/files-2.1/$package$/$project$/$version$/$sha1$/$proj-ver.jar$/
例如,對于icu4j-66.1.jar來自 URL 'https://maven.minecraftforge.net/com/ibm/icu/icu4j/66.1/icu4j-66.1.jar' 將存盤在以下路徑:
%GRADLE_USER_HOME%/caches/modules-2/files-2.1/com.ibm.icu/icu4j/66.1/$sha1$/icu4j-66.1.jar
之后,我們需要獲取 sha1 代碼。我們可以通過創建一個新任務并列印出獲取的 sha1 代碼來實作build.gradle中https://gist.github.com/dagezi/9594839#file-calcsha1-gradle的Gradle 代碼。
然后,再次運行build.gradle,快取檔案會自動實作。(無需使用離線模式)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/475161.html
