又构建了一次jenkins启动后台,难受了一整天,途中遇到的坑…不可言喻,总结一下过程,不做教程(接下来还得弄前端VUE项目的自动化构建…)(我真的只是Java开发吗?)。
Linux安装的软件
1、安装Jenkins
跟着百度走…
2、安装Jdk
这一步实际上在我的项目是第一步了
注意配置JAVA_HOME
3、安装Git
拉Gitee仓库的代码也需要这个,很重要,网上有的人说git要新版,我直接用yum安装的1.8.3.1也能正常用
4、安装Maven
记得设置本地仓库地址,应该都是用自定义的地址吧…
Jenkins里的配置
除了第一步可以和我的顺序是乱的,这个无所谓,最终配置一样就行
在设置->插件管理->安装gitee插件和Maven插件
比较新版的jenkins安装推荐插件时,应该都自带中文了吧,没有中文就百度一下Jenkins中文插件。
这是Gitee插件,后面版本无所谓,用最新就行
这是Maven插件,后面版本无所谓,用最新就行
坑!
先来看看全局工具配置
一号神坑! - Maven
神坑-Maven-配置
看看这朴实无华,人畜无害的默认Maven配置啊!
我呸!我就是信了这个邪!
一直往下滑!!
好家伙,真正Maven配置在这呢
不用自动安装,不稀罕!手动配置一下自己安装Maven的路径
神坑-Maven-Pom
初次创建Maven的构建项目会在Build下的POM这爆红,说找不到POM,其实就是没有拉代码,在文件夹内看不到pom,忽略Root POM这一行就行,直接填写
clean package -Dmaven.test.skip=true
(什么?你还没创建Maven构建项目?那赶紧百度啊!)
二号神坑! - Gitee
过程中,看官方文档,看别人的过程,哎!迷糊!
来!暖一波!
神坑! 设置->系统设置->Gitee配置
上面两行照抄好吧,令牌添加一个Token的,这里是验证仓库账号的Token
点击友情链接获取私人令牌
先创建一个有所有权限的,复制下来
记住是Gitee API令牌,别选错了!
私人令牌用刚才创建复制的! 你想手敲我也不反对
ID随便!唯一性就行
描述无所谓!放入友情链接也行
好家伙,走到这里已经是千难万阻了,接下来,碰到一个让我琢磨了几小时才搞定的东西
还是令牌!
来,进入刚才构建的Maven项目的配置里
就那个gitee链接,如果服务器本地不安装git,不去配置git,就会怎么也选不了(好像Git还没讲,在下面)
看到这个源码管理了吗,放入自己gitee的仓库地址
然后…下面那个凭证?我赌你怎么也选不了!再怎么添加Gitee令牌也还是空的!!!
因为!!!
这里居然是要重新建一个账号密码的凭证!
得用这个!!输入自己Gitee的登录账号密码。
如果配置了邮箱登录Gitee的话,好像也能用,没试过,也不想试了
Gitee的坑,好像就到这里了,网上有的说弄什么公钥私钥,这啊那啊的,说实话我没看懂,可能是因为问题不一样吧。
三号神坑! - Git
其实也没多少坑,就是运维没装Git在服务器上,导致Maven项目无法选择Gitee作为源码管理。
没办法,自己来呗,劳动人民最光荣!全局工具配置走一波!
不用自动安装,名字随便写,路径好像是写git的安装目录吧
或者…我是安装了Git就自动出来了?记不清楚了
四号神坑! - JDK
这个坑…很无语,运维不会Jenkins,什么都自己搞,其实这个问题是最后发现的,当时卡在jenkins无法启动java -jar的问题上,花了一天时间研究,看了各种文章,无论是把命令放在shell脚本里,还是直接写在执行命令里都没用,最后配置了一下Jdk,诶,好了!
配置简简单单,照抄填地址就行
JAVA_HOME可不能用我的,得用你自己的
五号神坑!- 执行命令!
我了解的部分,只有图中的这些
Pre Steps - 构建之前的操作,我是没加,可以做一些日志记录之类的吧,我只在乎把项目构建起来,这些东西,以后交给运维了。
Build - 因为是Maven项目,所以就是清除 - 打包,我通常都是跳过测试,本地多测试就好
Post Steps - 构建后的操作,上面的配置,都是为了让Jenkins能够拉代码,打包代码,这里就是执行Jar包的操作
分享下我的执行脚本
#!/bin/bash
BUILD_ID=dontKillMe
ps -ef | grep "demo-0.0.1-SNAPSHOT.jar" | grep -v grep | awk '{print $2}'|while read pid
do
echo "清除pid$pid"
kill $pid;
done
echo "开始复制"
cp /var/lib/jenkins/workspace/maven-project/target/demo-0.0.1-SNAPSHOT.jar /usr/local/maven-project/demo-0.0.1-SNAPSHOT.jar
echo "开始启动"
nohup java -jar /usr/local/maven-project/demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=release &
echo "结束启动"
记得改自己的路径和jar包名
复制jar包时可以做个jar包备份,出错了能够立马用老的jar包跑起来
BUILD_ID=dontKillMe :解决Jenkins启动jar后会直接停止运行jar包的问题
nohup … &:与上一个搭配着使用。如果只是在服务器里直接跑jar包,可以没有上一句
结束
参考链接中有webhook的配置,就不赘述了,这篇文章主要是记录自己碰到坑,网上关于jenkins配置的文章,来来回回就那几篇,实在是不够多,记录一下,以后自己也能用。
写到后面,戾气越来越淡,心态也越来越平静,或许这就是写作的用处吧。
参考文章:
Jenkins + Gitee(码云) 实现代码自动化构建
jenkins 找不到pom.xml
其实还参考了很多,一时半会找不回来,先写这么点
以后看到了就补上去!
欢迎说出自己的的问题,大家一起讨论~