我在执行插件安装命令时收到:
执行时:java -jar jenkins-cli.jar -auth用户:pass -s http://localhost:8080安装插件文件:///folder/plugin.hpi
错误:执行安装插件命令时发生意外的异常。 java.io.FileNotFoundException:/folder/plugin.hpi(无此类文件或目录)
没有文件://
/folder/plugin.hpi既不是有效的文件,URL,也不是更新中心中的插件工件名称
我尝试了所有可能的组合,该文件确实存在。
编辑:从例外情况开始,它一直认为它是url而不是文件:
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
at java.net.URL.openStream(URL.java:1045)
at hudson.FilePath.copyFrom(FilePath.java:890)
”
编辑2:在给定HTTP URL的情况下它确实可以工作,但是需要我将其上载到我没有的服务器上。
编辑3:我尝试将文件移到Jenkins / var / lib / jenkins的同一文件夹中,并赋予其777权限。
答案 0 :(得分:1)
Jenkins主进程必须可以访问您作为install-plugin
的参数提供的URL。如果您收到错误消息
/folder/plugin.hpi (No such file or directory)
那么最有可能是访问权限出现问题,或者/folder
没有安装在主机的主机上(或者如果使用docker,则没有安装在主机的容器中)。
这就是HTTP URL起作用的原因。
因此,对于file://
URL,您需要在CLI用户/计算机和Jenkins主用户/计算机之间对齐文件系统安装和权限。
答案 1 :(得分:1)
这是@Alex O解决方案的组合,我使用-auth myuser:mypass代替--username admin --password密码并切换了--remoting。
它看起来像这样:
java -jar jenkins-cli.jar -s http://host-ip:8080/ -remoting install-plugin ./plugin.hpi --username my-user --password my-pass -restart