ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

「Jenkins」- 常见错误汇总 @20210129

2021-01-29 12:29:42  阅读:208  来源: 互联网

标签:插件 booleanParam 汇总 Pipeline PERSON Jenkins Grab 20210129


# 当使用input的booleanParam选项注入变量时,变量类型是什么?

-「booleanParam in jenkins dsl

软件版本:Jenkins ver. 2.176.1

问题描述

在下面示例中:

input {
	message "Should we continue?"
	id "AAAA"
	parameters {
		booleanParam(name: 'PERSON', defaultValue: false, description: 'Who should I say hello to?')
	}
}

when {
	expression { return PERSON }
}

在构建时,无论选择什么参数,表达式When永远为真。

问题原因

经过测试,由inputbooleanParam选项注入的变量,它为String类型。也就是说变量PERSONString类型。根据文档中对When的描述,当类型为String时,等同于true值,这就导致When永远是通过的。

根据「booleanParam in jenkins dsl」的描述,该变量是从env中获取,所以为String类型。

解决办法

当在When语句中,需要类型转换。将expression { return PERSON }替换为expression { return PERSON.toBoolean() }即可。

# 构建时创建了过多的子进程

问题描述:
前端开发人员,不知道在NPM的构建文件里写了什么,会递归产生子进程。最后把主机的进程耗光,导致服务器宕机。

解决办法:
这个好办,因为Jenkins是以jenkins用户运行的,所以「限制允许用户创建的最大进程数」即可。修改方式因系统而异,主要是SysV init与systemd之间的差异。

当初也不知道谁把NPORC改成了不限制,这你让说什么好。而且,我发现他们特别爱用infinity或者65536这种参数值。

# exception message [Exec timed out or was interrupted after

-「Jenkins Text-finder unable to success my Build

问题描述:
使用Publish Over SSH插件时,当命令执行结束后,不能正确退出。一直等到超时之后才退出。

解决办法:
在Publish Over SSH的高级设置(Advanced...)中,选中「Exec in pty」选项。

# 某些Job不可见

问题描述:
在Jenkins中定义的某些Job不见了

问题原因:
因为升级了Jenkins中的某些插件,但是需要插件需要更新Jenkins的版本。在插件管理中一片红。

解决办法:
升级Jenkins到新的版本。

# java.lang.NoSuchMethodError: com.google.common.io.Files.asCharSource

-「Use of beta Guava method since deleted: Iterators.skip
-「Upgrade Guava or properly isolate core Guava dependency from plugins
-「Hide core dependencies in plugin classpath

问题原因:
在Pipeline的共享库中使用了「Docker Java Parser » 0.2.0」库,该库依赖了「com.google.guava » guava 23.6-jre」库,这都没啥问题。

问题的原因在于,Jenkins也使用了Guava库,版本是11。旧库的加载覆盖了新库。

解决办法:
还没找到……

# Annotation Grab cannot be used in the sandbox

-「Could not initialize class with @Grab annotation in shared library #43

目前还不能在Pipeline中使用@Grab注解。解决办法有两个:在共享库里使用@Grab注解来引入第三方共享库;或者换用其他的插件,使用Jenkins提供的步骤。

#「jenkinsfile doesn't recognize @Grab
在Pipeline中不能使用@Grab来引入第三方库。因为在Pipeline中,Jenkins的CPS需要源码才能进行CPS转换,而@Grab加载的是二进制的库。

# Scripts not permitted to use staticMethod

-「Jenkins CI Pipeline Scripts not permitted to use method groovy.lang.GroovyObject

标签:插件,booleanParam,汇总,Pipeline,PERSON,Jenkins,Grab,20210129
来源: https://blog.csdn.net/u013670453/article/details/113378058

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有