如果遇到安装jenkins插件经常失败并报以下类似错误,很可能是因为jenkins国外官方插件地址下载速度非常慢,我们可以修改为国内插件地址。
java.io.IOException: Failed to load: SCM API Plugin (scm-api 676.v886669a_199a_a_) - Jenkins (2.361.4) or higher required - Failed to load: Structs Plugin (structs 325.vcb_307d2a_2782) at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:1018) at hudson.PluginManager.dynamicLoad(PluginManager.java:926) Caused: java.io.IOException: Failed to install scm-api plugin at hudson.PluginManager.dynamicLoad(PluginManager.java:940) at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2217) Caused: java.io.IOException: Failed to dynamically deploy this plugin at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2221) at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1867) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:121) at java.base/java.lang.Thread.run(Thread.java:829)
先进入插件文件目录 cd /var/jenkins_home/updates(找到自己对应的文件目录)
将国外官方地址替换为国内清华大学jenkins插件地址
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
命令解释:
第一个命令:
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
这个命令在default.json
文件中查找所有的http://updates.jenkins-ci.org/download
字符串,并将其替换为https://mirrors.tuna.tsinghua.edu.cn/jenkins
。这里使用了-i
选项,这意味着对文件进行原地编辑,即直接修改文件内容,而不是输出到标准输出。第二个命令:
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
这个命令在
default.json
文件中查找所有的http://www.google.com
字符串,并将其替换为https://www.baidu.com
。同样,这里也使用了-i
选项进行原地编辑。
然后替换国内插件的更新地址
Jenkins > Manage Jenkins > Plugin Manager、点击Advanced页面替换Update Site的url、并submit
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
最后重启Jenkins就应该可以了。