【发布时间】:2018-08-16 06:47:47
【问题描述】:
在我们的 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 机器上,架构被正确检测到。
也许有人也有这个问题,可以在这里帮助我吗?
【问题讨论】:
-
刚刚在本地复制了一个简单的例子(
amd64Linux 也是),插件下载了正确的 Node 二进制文件(https://nodejs.org/dist/v10.8.0/node-v10.8.0-linux-x64.tar.gz)。我还检查了源代码,乍一看似乎是正确的。您是否使用了覆盖os.arch属性的特定 Jenkins 配置?
标签: node.js angular maven plugins frontend