繁体   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