我们的Jenkins Linux服务器上的构建失败,因为该插件检测到错误的体系结构。 它检测到x86而不是x64,并且node不再为Linux提供x86版本,因此下载失败!
这是插件生成的输出:
[INFO] Node v8.9.4 was installed, but we need version v10.8.0
[INFO] Installing node version v10.8.0
[INFO] Downloading https://nodejs.org/dist/v10.8.0/node-v10.8.0-linux-x86.tar.gz to /home/tadmin/.m2/repository/com/github/eirslett/node/10.8.0/node-10.8.0-linux-x86.tar.gz
导致404错误,因为此版本不存在。 服务器正在使用以下配置运行JDK 1.8:
java -XshowSettings:properties -version
os.arch = amd64
os.name = Linux
os.version = 3.10.0-862.el7.x86_64
我检查了用于检测体系结构的插件的源代码,未发现任何错误:
enum Architecture { x86, x64, ppc64le, s390x, arm64;
public static Architecture guess(){
String arch = System.getProperty("os.arch");
if (arch.equals("ppc64le")) {
return ppc64le;
} else if (arch.equals("aarch64")) {
return arm64;
} else if (arch.equals("s390x")) {
return s390x;
} else {
return arch.contains("64") ? x64 : x86;
}
}
}
在我的Windows计算机上,可以正确检测到体系结构。
也许有人也遇到了这个问题,可以在这里帮助我吗?
答案 0 :(得分:0)
因此,在经过更多的调试时间后,事实证明我们的运营团队(出于某种原因)在机器上安装了另一个JDK,然后在构建过程中使用了它。
切换到通常的JDK后,此问题消失了。