目录

  • jenkins的一些设置
  • 工具设置
  • 指定maven配置文件
  • 配置jdk
  • 配置maven
  • 通用配置设置
  • 邮件配置
  • 系统邮件配置
  • 新建maven项目
  • 构建触发器
  • git配置
  • 构建打包
  • 构建脚本
  • 参数化构建
  • 指定参数
  • jenkins的构建基本大概都是这5部分
  • jenkins 的默认目录
  • jenkins 远程主机的操作
  • jenkins 集群
  • 添加节点
  • 配置节点
  • 常用插件介绍
  • Maven Integration plugin
  • Publish Over SSH
  • Build Authorization Token Root
  • Blue Ocean

jenkins的一些设置

jenkins常见用法_maven项目

工具设置
指定maven配置文件

jenkins常见用法_maven项目_02

配置jdk

jenkins常见用法_java_03

配置maven

jenkins常见用法_jar_04

通用配置设置

邮件配置

jenkins常见用法_java_05

jenkins常见用法_maven项目_06

系统邮件配置

jenkins常见用法_java_07

新建maven项目

需要安装 Maven Integration plugin 才有这个风格的项目

jenkins常见用法_maven项目_08

构建触发器

jenkins常见用法_java_09

git配置

jenkins常见用法_maven项目_10

构建打包

jenkins常见用法_maven项目_11

构建脚本

jenkins常见用法_java_12

参数化构建

指定参数

jenkins常见用法_jar_13

设置参数

jenkins常见用法_maven项目_14

jenkins常见用法_maven项目_15

在脚本等地方可以同过 ${参数名使用参数}

jenkins的构建基本大概都是这5部分

  • git地址 #代码仓库
  • 构建触发器 #什么时候构建,一般我们都是手动构建
  • 构建前环境 #比如把构建需要的一些文件复制过去
  • 构建 #构建操作,比如生成jar
  • 构建后 # 构建后操作,比如允许jar包

jenkins 的默认目录

里面的workspace是工作目录,拉取的项目就再者里面

#如果要删了了它,就等下重置了jenkins
/root/.jenkins
  • 1.
  • 2.



jenkins 远程主机的操作

主机A上有jenkins 编译环境啥的,但是程序需要运行在主机B上

在主机B上生成公私钥

ssh-Keygen
  • 1.

复制主机B的公钥到主机A,在主机B上执行

ssh-copy-id -i 主机A #然后输入密码
  • 1.

这时候主机A多了一个授权文件, /root/.ssh/authorized_keys,里面写着允许远程免密登录的公钥

[root@localhost .ssh]# more authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/Cmbje8kbgO4Jexnr4jawxVqBPjXiwMi4u+DqAs8eeQDe4CXg1R1DXriFc94
xzh4Wfg8G2tMiFGsBCOcUos3AiqjME03E5by2/ov4xnP5RXwDaegUfEeHPYgd7MFEx9fb+x+ppU8Iv6kNOT6dcgeqSPumi0W4WdH
rFOd6QSdbf2ixhvVd8FbEv7WjjAqr9WM76JhUKh9F97UBBdhOlF+HG/a8njhGD9gqEJ9Xs8daDJt8LsQ9xFPQKopSA5KZTSSA6XI
X4Mdh1EHVIZ3tPojX6D/Bv44c19D9UvzSh7rEGKbUkvq/KFdHtfOG3hifzvCTv98HK+vW5acrWbdRcLJ root@localhost.loca
ldomain
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIpiA6cD2baP+MYgeR/dn55fWu7w6LDNQa4lPvBlD+zy/qUM3/ffh2JycddzbW
pO9GH3qNCwhGay08roZqpOf2bOZovrzldInCmVQRKbWHmhgOXeXXaenjan0+OsBG39cpfrGRThXX1WMyqCcSfMyNscAULn1lK2dm
OQY4LvSkgelh+5NPVhm+2syxfL+kRcEFmuX5Vq3eGLYZHVJnT+syAlblqELhFxZH1XfovqivbJpD5d0TUcw3WWD8RKI3TTExzdV0
pq22V4KdDkKTu+gkbR8DcuJxGXUC95+3Gh3lksNqSG+7fHuMm8JyU6MQVHb6ULHF+R+WjFbV7mO6dgQp root@localhost.loca
ldomain
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

如果要主机B也能免密登录主机A ,在主机A上执行

ssh-copy-id -i 主机B #然后输入密码
  • 1.

这时候可以使用 scp 复制在两台主机之间复制文件

#复制当前主机的文件到远程主机上
scp /root/.ssh/authorized_keys root@主机IP:/root/.ssh/authorized_keys
  • 1.
  • 2.

执行远程主机的脚本(登录到192.168.100.67,然后再 /root/code目录下面, readme.txt 里写入我来了,然后又把它复制到 192.168.100.66 )
ssh root@192.168.100.67,在jenkins 里面不能执行,需要加上 << remotessh

ssh root@192.168.100.67 << remotessh
cd /root/code
echo "我来过了" > readme.txt

scp  readme.txt root@192.168.100.66:/root/code
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

jenkins 集群

目的是多节点并行构建项目,添加了从节点,会通过ssh把jenkins.war,远程代理工具,还有一些比如maven之类依赖不强的工具包复制过去,也就是说从节点很多东西jenkins都会自动配置

jenkins常见用法_java_16

添加节点

jenkins常见用法_java_17

配置节点

标签就是给主机取得名字

jenkins常见用法_java_18




常用插件介绍

Maven Integration plugin

一个构建maven项目的插件(jenkins使用JDK11+以后有不能识别 mvn需要的JDK版本的bug)

jenkins常见用法_java_19

Publish Over SSH

能通过ssh 发送一个文件到目标服务器,或者执行一段脚本,在构建前,或者构建中可用(可以使用账号密码)

如果不用这个插件,我们只能试用shell 免登录,然后scp 复制文件和 ssh登录目标服务器执行操作

jenkins常见用法_jar_20

设置服务器信息

jenkins常见用法_java_21

备注:执行nohup java -jar xxx.jar &命名可能会导致命令行不长时间不退出,从而发送文件超时可以改成
nohup java jar xxx.jar >>nohup.out 2>&1 &
或者简写成 nohup java jar xxx.jar &>>nohup.out & 这样会回立即退出

2>&1

  • 0 表示stdin标准输入,用户键盘输入的内容
  • 1 表示stdout标准输出,输出到显示屏的内容
  • 2 表示stderr标准错误,报错内容
  • 2>&1 是一个整体,>左右不能有空格,即将错误内容重定向输入到标准输出中去。
Build Authorization Token Root

远程构建 默认是需要登录的问题,安装插件以后不需要登录

原始是请求:jenkinsUrl/job/jobName/build?token=admin123
安装插件后免密请求地址:jenkinsUrl/buildByToken/build?job=jobName&token=admin123

jenkins常见用法_maven项目_22

Blue Ocean

一个ui美化工具,可以让项目界面更加美观,尤其是优化了 pipeline 的流程。

jenkins常见用法_java_23

蓝海对界面和交互逻辑做了美化

jenkins常见用法_maven项目_24