Jenkins java.nio.charset.UnmappableCharacterException:输入长度= 1

Gen*_*cia 3 java git exception bitbucket jenkins

我正在开发 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
Run Code Online (Sandbox Code Playgroud)

最初,我认为这可能是一个权限错误,因为我不是笔记本电脑的管理员,并且 Jenkins 实例的主目录位于我的用户文件中,但将目录更改为其他位置后,我仍然遇到相同的错误。我认为这可能是java.nio.charset.UnmappableCharacterException: Input length = 1例外,但是,在彻底研究之后,我无法弄清楚詹金斯的拉操作中执行此操作的位置以及是否有办法解决它。

我将非常感谢任何有关可能导致此问题的原因或信息。

小智 5

如果你在 Windows 上运行 Jenkins。我解决了这个问题

  1. 添加系统环境变量
    • 关键 JAVA_TOOL_OPTIONS
    • 值-Dfile.encoding=UTF8
  2. 重新启动系统
  3. 测试构建

因为在 Jenkins 2.361.1 (LTS) 上。它使用系统默认编码(Windows = x-windows-874)读取jenkinsfile