- 服务器地址:
172.16.8.6:8080
登录页面:
-
点击新建任务
- 创建任务
- 输入任务名称
任务名称采用正则表达式\w{1,15}-(java|web|php|app|android|ios|apple|vue|ant)(-\w{0,15})?
示例:uap-web,uap-java-config -
复制模板
输入temp从模板列表中选择,或者选择其他已有的项目
最后点击创建即可
- 配置源码地址Gitlab :172.16.26.120
-
打开Gitlab上的项目,确认Jenkins用户已经加入到项目中,拥有拉取代码权限
-
选择SSH协议,复制项目地址,如下图
image.png -
在Jenkins项目上添加代码仓库路径
-
点击源码管理
-
从gitlab上复制项目ssh地址链接粘贴到RepositoryURL中
-
在Branch Specifier (blank for 'any') 填入分支名,如下图为master分支
- 构建触发器
-
选择Jenkins项目中 “构建触发器” 选项卡
-
勾选Build when a change is pushed to GitLab. 并复制GitLab webhook URL,如下图
image.png -
打开Gitlab上项目地址,选择“设置”(需要有对应权限才可以该选项)下“集成”选项卡,在“链接(URL)”文本框中填入Jenkins上对应的web钩子url,勾选触发事件,如图勾选push事件,点击“增加web钩子”即可,如下图
image.png
- 构建环境
-
在Jenkins上选择构建选项卡,点击“增加构建步骤”,选择对应的工具构建即可,
示例:构建java maven项目,选择maven项目填入对应maven命令
示例:构建前端npm 项目,选择执行shell,填入对应命令即可
- 发布编译后项目文件
-
该Jenkins服务器只用于项目编译,项目运行需要将编译后文件传送到对应服务器发布运行,对于已经打包的java项目和web项目,已经编写两个脚本runweb
/usr/local/bin/runweb
,runjar/usr/local/bin/runjar
-
/usr/local/bin/runjar
该脚本用于将springboot项目打包后的jar包通过scp传送到对应服务器,运行发布
选项- -a :在指定机器执行命令(脚本内已经指定172.16.8.20为默认远程机器) eg:
runjar -a “ls /tmp”
即在远程机器执行ls /tmp
命令,该命令将忽略除了-h -u -P
以外的其他选项 - -h :指定远程的服务器,eg:
runjar -h 172.16.8.18 -a "ls /tmp"
即在172.16.8.18 机器执行ls /tmp
命令 - -u :指定ssh远程用户默认采取root用户,eg:
runjar -u admin -a "ls"
- -P :指定ssh远程端口,默认采用22端口
- -f :指定jar 包地址,忽略
-m
选项自动查找jar包,-m
选项与-f
同时出现会覆盖选项功能,写在后面选项将覆盖前面选项 - -p :指定spring boot 运行的jar包端口,即组成
-Dserver.port=
选项,eg:runjar -p 8888 -f /opt/test.jar
即组成命令java命令为java -jar /opt/test.jar -Dserver.port=8888
- -d :指定spring 运行配置文件 即组成-Dspring.profiles.active= 选项
eg:使用测试环境配置runjar -f /opt/test.jar -d test
- -m :指定java项目中的模块文件夹名称,该选项将自动查找该模块文件夹下的第一个查找到的jar包,作为运行的jar
- -j :用于指定其他JAVA_OPTS,扩展java程序运行命令,eg:
runjar -m web -j "-Xms800m -Xmx800m"
对于上面选项不支持配置jar包运行内存参数,即可通过-j 命令增加
示例:通过jenkins控制台输出可查看运行日志,脚本运行日志如下:
- -a :在指定机器执行命令(脚本内已经指定172.16.8.20为默认远程机器) eg:
-
/usr/local/bin/runweb
该脚本用于将web前端编译后的文件传送发布到对应web服务器上- -a :在指定机器执行命令(脚本内已经指定172.16.8.20为默认远程机器) eg:
runweb -a “ls /tmp”
即在远程机器执行ls /tmp
命令,该命令将忽略除了-h -u -P
以外的其他选项 - -h :指定远程的服务器,eg:
runweb -h 172.16.8.18 -a "ls /tmp"
即在172.16.8.18 机器执行ls /tmp
命令 - -u :指定ssh远程用户默认采取root用户,eg:
runweb -u admin -a "ls"
- -P :指定ssh远程端口,默认采用22端口
- -m :远程备份文件夹名称,runweb脚本会将之前项目文件进行备份到/tmp/{模块名}/日期目录下,默认名称使用Jenkins项目名称
- -f :指定远程服务器存放web项目文件目录
-
-l :指定本地服务器存放web项目文件目录,相对路径(项目根目录),或绝对路径
示例:通过jenkins控制台输出可查看运行日志,脚本运行日志如下:
- -a :在指定机器执行命令(脚本内已经指定172.16.8.20为默认远程机器) eg:
网友评论