1、Jenkins升级方法
如果是通过Tomcat启动Jenkins则直接下载新war包替换即可
2、 Jenkins执行任务后自动kill进程
2.1:问题描述:
在pipeline的jenkinsfile中定义了执行tomcat的启动脚本,在视图中显示脚本执行了,tomcat也启动完成,但是查看tomcat进程后却没有进程
- 服务器上查看却没有进程
2.2:问题原因:
pipeline在执行脚本后就会自动关闭这个进程(后台进程)
2.3:解决方案:
在jenkinsfile中添加变量参数 JENKINS_NODE_COOKIE=dontkillme
withEnv(['JENKINS_NODE_COOKIE=dontkillme']) {
sh '''
ssh remote_user@remote_ip "/opt/tomcat/bin/start.sh"
'''
}
3、Jenkins-Slave节点的工作空间
- Jenkins-slave从机上的代码工作空间(workspaces),是配置从机时定义的。比如下图
4、 如果没有自定义Jenkins的主目录后期如何修改
- 当刚开始建议jenkins时没有去修改jenkins的工作主目录,那么后期默认的目录空间不够的解决方案:
- 方案1:扩大jenkins所在磁盘的空间
- 方案2:修改jenkins的默认工作主目录路径,然后进行迁移原来工作目录下的数据到新的目录下
- 修改jenkins的工作主目录方式,按照该文档的jenkins安装部署中方式进行修改
- 1、停止正在运行的jenkins
- 2、修改tomcat的bin目录下的catalina.sh执行文件
- 3、创建目录
- 4、拷贝原来jenkins主目录下的所有文件到新的jenkins的主目录下
- 5、重启jenkins
- 最后可以在jenkins系统配置中查看是否修改成功
5、 Jenkins无法拉取SVN项目最新的代码
5.1:问题原因
查看网上说法是由于SVN服务器与Jenkins服务器的时间不一致导致
Jenkins服务器时间与S
也就是说Jenkins在 10:56 更新代码,而SVN上14、15版都是在 10:56 后提交的,所以Jenkins只能检测到 10:56 之前的最新版本。
5.2:解决方案
方案一:在SVN项目URL地址后面添加@HEAD
- 示例:如项目地址为svn://http:localhost/trunk/BKMC, 改成svn://http:localhost/trunk/BKMC@HEAD
- 在pipline脚本中也是需要添加@HEAD
方案二:同步Jenkins和SVN服务器的时间,使两者保持一致
6、 git合并代码报错
6.1:问题截图
6.2:问题原因
master上最新的代码和本地的代码不一样
6.3:解决方案
[root@localhost~ ]# git pull --rebase origin master
#然后再次上传代码
[root@localhost~ ]# git push origin master
7、Win环境下的Jenkins更改Job工作空间
- 说明:我这里是直接通过
Jenkins.msi
文件起的 - 停掉正在运行的Jenkins程序,修改Jenkins安装目录下的
config.xml
文件【默认安装目录: C:\Program Files (x86)\Jenkins】 - 用编辑器打开文件修改以下内容
- 最后重启Jenkins
8、Jenkins下载插件很慢
- 首次安装jenkins会进行下载插件的步骤,我们可以跳过,后面通过后台的方式更改国外的插件源为国内的,具体操作如下:
- Jenkins → Manage Jenkins → Manage Plugins → Available
- 等待插件完全加载完毕(浏览器的顶部搜索栏不在转圈即为加载完毕)
- 登入Jenkins服务器,查看插件地址文件已经下载到本地服务器
[root@jenkins ~]# find / -name updates
- default.json文件中记录了我们所有的插件下载地址,但是记录的地址为国外的地址,接下来通过sed命令进行更改为清华的一个Jenkins地址
[root@jenkins updates]# 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
- Jenkins → Manage Jenkins → Manage Plugins → Advanced
- 在Advanced(高级设置)中将默认的地址也更改为国内地址
- 清华源jenkins插件地址: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
- 重启jenkins,在浏览器jenkins地址后面加restart即可完成重启
9、Jenkins工作空间下有多个@tmp目录
9.1:问题描述:
最近项目在进行构建前端项目时,执行到npm install时出现了出现写入到目录的问题
9.2:问题原因:
出现两个或者出现多个@tmp或者@2@tmp等格式命名的目录,这说明你的JOB任务在并行构建,并行的时候是没法儿对同一个目录进行操作的,所以它会随机的去产生那么几个目录
9.3:解决方案:
将JOB任务设置为【不允许并发构建】或者每个构建执行完成后清理工作目录
10、Jenkins执行的Job无法停止
10.1:问题描述:
- 正在执行构建的Job任务想要停止掉,但是点 X 无法结束
10.2:解决方案:
- 选择当前正在执行构建的ID号,弹出当前构建的页面。然后在url后面加个kill 回车。强制关闭构建。
11、[ERROR] Java heap space
11.1:问题描述
You are using Maven Pipeline Plugin and you get[ERROR] Java heap space
[ERROR] Java heap space -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1]
11.2:问题原因
这个错误通常是由于Maven在执行构建过程中使用的堆空间不足所引起的。在执行构建过程中需要为 JVM 分配一定的内存空间。如果分配的堆空间不足以容纳构建所需的操作,就会出现 “Java heap space” 错误。
11.3:解决方案
最简单的解决方案是使用Maven JVM选项来指定流程所需的最大(或最小和最大两个)堆大小。您可以在withMaven步骤中使用mavenOpts 下面是一个示例:
stage('Build') {
withMaven(
mavenSettingsConfig: '9d2a7048-91b1-47a8-8788-be4b89b71128', jdk: jdk.toString(), maven: 'Maven 3.3.9', mavenOpts: '-Xmx2048m') {
bat 'mvn clean package'
}
}
重要提示:在增加堆大小之前,请确保您有足够的可用物理内存(RAM)。如果您的Java进程无法保留指定的堆空间,则可能会收到错误消息“ VM初始化期间发生错误。 无法为2097152KB对象堆保留足够的空间 ”。这意味着要么服务器中没有足够的物理内存来用于Java来保留指定的堆空间(在这种情况下为2 GB),要么是其他服务器/操作系统设置(例如Windows上的32 JVM具有大约1.6 GB的堆限制),从而阻止了Java的保留。指定的堆大小
12、访问Jenkins有可能提示AWT is not properly
12.1:问题描述
安装部署好Jenkins,进行访问时提示下图的报错:
12.2:解决方案
~]# yum install fontconfig
git pull –rebase origin master这条命令是什么意思