簡體   English   中英

Jenkins java.nio.charset.UnmappableCharacterException:輸入長度 = 1

[英]Jenkins java.nio.charset.UnmappableCharacterException: Input length = 1

我正在開發一個 Jenkins 應用程序和管道,以測試 Apex 代碼並將其從 Bitbucket 存儲庫部署到 Salesforce。到目前為止,我已經設法將我的存儲庫與我的 Jenkins 環境進行通信。 我的 Jenkins 實例在我公司筆記本電腦的 Windows 10 上運行,我已經完成了本指南中的最后一步: https://medium.com/@r.kurchenko/setup-continuous-integration-based-on-salesforcedx- c9f461c4db03

我現在要處理的問題是,在推送到我的存儲庫時,盡管管道啟動了,但它甚至沒有進入構建步驟,並給我以下錯誤消息:

Started by an SCM change
Started by an SCM change
Running as SYSTEM
Building in workspace C:\JenkinsHome\workspace\sfdx-ci-force-push-build
The recommended git tool is: NONE
No credentials specified
 > git.exe rev-parse --resolve-git-dir C:\JenkinsHome\workspace\sfdx-ci-force-push-build\.git # timeout=10
Fetching changes from the remote Git repository
 > git.exe config remote.origin.url {repositoryURL} # timeout=10
Fetching upstream changes from {repositoryURL}
 > git.exe --version # timeout=10
 > git --version # 'git version 2.35.1.windows.2'
 > git.exe fetch --tags --force --progress -- {repositoryURL} +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10
Checking out Revision ee36df199b17d11bd7a8a020239dab1abafc5e6e (refs/remotes/origin/master)
 > git.exe config core.sparsecheckout # timeout=10
 > git.exe checkout -f ee36df199b17d11bd7a8a020239dab1abafc5e6e # timeout=10
Commit message: "Changes"
 > git.exe rev-list --no-walk ccf77e05e663dac6e1e32d2614ead22962da557b # timeout=10
FATAL: Unable to produce a script file
java.nio.charset.UnmappableCharacterException: Input length = 1
    at java.base/java.nio.charset.CoderResult.throwException(CoderResult.java:275)
    at java.base/sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:306)
    at java.base/sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:281)
    at java.base/sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125)
    at java.base/java.io.OutputStreamWriter.write(OutputStreamWriter.java:208)
    at java.base/java.io.BufferedWriter.flushBuffer(BufferedWriter.java:120)
    at java.base/java.io.BufferedWriter.close(BufferedWriter.java:268)
    at hudson.FilePath$CreateTextTempFile.invoke(FilePath.java:1660)
    at hudson.FilePath$CreateTextTempFile.invoke(FilePath.java:1630)
    at hudson.FilePath.act(FilePath.java:1200)
    at hudson.FilePath.act(FilePath.java:1183)
    at hudson.FilePath.createTextTempFile(FilePath.java:1624)
Caused: java.io.IOException: Failed to create a temp file on C:\JenkinsHome\workspace\sfdx-ci-force-push-build
    at hudson.FilePath.createTextTempFile(FilePath.java:1626)
    at hudson.tasks.CommandInterpreter.createScriptFile(CommandInterpreter.java:202)
    at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:120)
    at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:92)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:814)
    at hudson.model.Build$BuildExecution.build(Build.java:199)
    at hudson.model.Build$BuildExecution.doRun(Build.java:164)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:522)
    at hudson.model.Run.execute(Run.java:1896)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
    at hudson.model.ResourceController.execute(ResourceController.java:101)
    at hudson.model.Executor.run(Executor.java:442)
Build step 'Execute shell' marked build as failure
Finished: FAILURE

最初,我認為這可能是一個權限錯誤,因為我不是筆記本電腦的管理員,並且我的 Jenkins 實例的主目錄在我的用戶文件中,但是在將目錄更改到其他地方后我仍然得到同樣的錯誤。 我認為它可能是java.nio.charset.UnmappableCharacterException: Input length = 1異常但是,在徹底研究之后,我無法弄清楚 Jenkins 的拉操作在哪里執行以及是否有辦法解決它.

我將不勝感激有關可能導致此問題的原因的任何線索或信息。

我通過設置非 Unicode 程序的語言解決了這個問題:在開始 -> 設置 -> 時間和語言 -> 語言 -> 管理語言設置中。 管理選項卡。 截圖在這里

如果您在 windows 上運行 Jenkins。 我解決了這個問題

  1. 添加系統環境變量
    • 鍵 JAVA_TOOL_OPTIONS
    • 值 -Dfile.encoding=UTF8
  2. 重啟系統
  3. 測試構建

因為在 Jenkins 2.361.1 (LTS) 上。 它使用系統默認編碼讀取 jenkinsfile (Windows = x-windows-874)

-Dfile.encoding=UTF-8添加到您的jenkins.xml示例:

<arguments>-Xrs -Xss4096k -Xmx2048m -XX:MaxPermSize=512m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -Dfile.encoding=UTF-8</arguments>

暫無
暫無

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

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