DevOps / Jenkins

Jenkins与Git集成常见问题解决方案汇总

浅时光博客 · 3月12日 · 2020年 · 15.0w 次已读

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原文链接:https://www.dqzboy.comVN服务器时间不一致,Jenkins的SVN插件是使用时间标签下载,而不是取HEAD,因此如果svn服务器的提交代码时间比Jenkins的当前时间晚,该代码就不会被更新。

也就是说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目录

原文链接:https://www.dqzboy.com

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

本文作者:浅时光博客
原文链接:https://www.dqzboy.com/1867.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可,转载时请以>超链接形式标明文章原始出处和作者信息
免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。请在下载后24小时内删除相应内容。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。

1 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!

  1. zhuzai广东·深圳2022-9-21 · 12:52

    git pull –rebase origin master这条命令是什么意思