确保 Jenkins 和操作系统指向相同的 Java 版本。
我在 Windows 上运行 Jenkins 2.121.2 时遇到了类似的问题。
构建会成功,但我没有得到任何 scm 数据。
相关的控制台输出:
[INFO] --- buildnumber-maven-plugin:1.4:create (default) @ amis ---
[INFO] Executing: cmd.exe /X /C "svn --non-interactive info"
[INFO] Working directory: D:\Program Files (x86)\Jenkins\workspace\myWebapp
[WARNING] Cannot get the revision information from the scm repository, proceeding with revision of Unavailable :
Exception while executing SCM command.
[INFO] Storing buildNumber: Unavailable at timestamp: 1534704912706
[INFO] Executing: cmd.exe /X /C "svn --non-interactive info"
[INFO] Working directory: D:\Program Files (x86)\Jenkins\workspace\myWebapp
[WARNING] Cannot get the branch information from the scm repository, proceeding with UNKNOWN_BRANCH :
Exception while executing SCM command.
[INFO] Storing buildScmBranch: UNKNOWN_BRANCH
但是,在 DOS 中,以下命令可以工作:
D:\Program Files (x86)\Jenkins\workspace\myWebapp\svn --non-interactive info
也就是说,我会得到预期的 scm 信息。所以 svn 在路径中,没有问题。
原来我的 Java 版本的路径是交叉的。
我的 PATH 环境变量中第一个与 Java 相关的路径是:
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
但 Jenkins 被配置为使用:
C:\Program Files\Java\jdk1.8.0_181
在 PATH 环境变量中,我将 x86 Java 路径替换为 Jenkins 所指向的路径,并且成功了。
我没有根除路径的方式或原因。从每个路径解析的两个 java.exe 文件似乎是相同的版本。 x86 版本可以运行 svn。根本原因在我的工资等级之上。