服务器版本:centeos 7.5

1.安装jdk,配置环境变量(这个就不用说了)
2.下载maven ,百度搜索 maven下载,进入maven官网

Jenkins shell自动更新代码_jar

3.上传到服务器 、后解压、移动
tar zvxf apache-maven-3.8.2-bin.tar.gz
mv apache-maven-3.8.2 /usr/local/
4.配置环境变量
vim /etc/profile

MAVEN_HOME=/usr/local/apache-maven-3.8.2
export PATH=$ MAVEN_HOME/bin:$PATH
export MAVEN_HOME PATH

5.刷新环境变量,生效
source /etc/profile
6.查看maven 版本
/usr/local/apache-maven-3.8.2/bin/mvn --version
如下就成功了

Jenkins shell自动更新代码_maven_02

7.更换maven阿里镜像
cd /usr/local/apache-maven-3.8.2/conf
vim settings.xml

在约159行插入下面一段:

<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url> http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf>
</mirror>

Jenkins shell自动更新代码_maven_03

8.安装jekins
 ①获取安装包
 wget https://prodjenkinsreleases.blob.core.windows.net/redhat/jenkins-2.213-1.1.noarch.rpm
 
 ②安装安装包
  sudo rpm -ivh jenkins-2.213-1.1.noarch.rpm
  
 ③配置jekins端口,我设置为9080
  sudo vi /etc/sysconfig/jenkins
  JENKINS_PORT="9080"
  默认安装地址:/var/lib/jenkins
 ④启动jekins
   sudo service jenkins start
  有可能会报错如下

Jenkins shell自动更新代码_Jenkins shell自动更新代码_04


查看错误(从第10行我们可以看出jenkins没有找到java文件,需要自己把java文件地址复制过去)

Jenkins shell自动更新代码_jar_05

vi /etc/init.d/jenkins    : 手动输入对应服务器中的java路径:

Jenkins shell自动更新代码_jenkins_06

⑤浏览器访问:
 http://ip:9080
 
⑥获取登录密码
根据页面提示位置/var/lib/jenkins/secrets/initialAdminPassword,获取初始密码
出现的问题:/var/lib/jenkins/secrets文件夹默认无法访问,需要修改文件夹及其下面文件权限
sudo chmod 755 -R secrets/

⑦登录密码后需要下载一堆插件

Jenkins shell自动更新代码_Jenkins shell自动更新代码_07


Jenkins shell自动更新代码_jar_08


Jenkins shell自动更新代码_maven_09


配置maven 和jdk

,系统管理---->全局工作配置

Jenkins shell自动更新代码_Jenkins shell自动更新代码_10

10.新建任务,若没有构建maven的信息,那就是缺少插件,在系统管理,插件管理下载

Jenkins shell自动更新代码_java_11


插件

Jenkins shell自动更新代码_maven_12

配置任务

源码管理,添加git信息,clone地址,账号密码,指定好克隆分支

Jenkins shell自动更新代码_jenkins_13

配置构建环境,pre build

Jenkins shell自动更新代码_java_14

执行shell

Jenkins shell自动更新代码_jar_15

shell

Jenkins shell自动更新代码_Jenkins shell自动更新代码_16

构建触发器,10分钟检查一次云端代码是否更新,更新就拉代码,从新构建,再执行shell,

Jenkins shell自动更新代码_java_17

例:我的shell脚本
start.sh 启动脚本

#即将 运行的jar文件所在路径
myFile="/usr/local/java/hellojekins/HelloWorldDemo-1.0-SNAPSHOT.jar"
if [ ! -f "$myFile" ]; then
   echo "===文件不存在,启动失败!!!==="
else

   

if [ "$HELLO_pid" == "" ]; then
       echo "----------------HelloWorldDemo 开始启动----------"
       nohup /usr/bin/java -jar -Xms50m -Xmx100m /usr/local/java/hellojekins/HelloWorldDemo-1.0-SNAPSHOT.jar > /dev/null 2>&1 &
       HELLO_pid=`lsof -i:$HELLO_port|grep "LISTEN"|awk '{print $2}'`
       until [ -n "$HELLO_pid" ]
           do
             HELLO_pid=`lsof -i:$HELLO_port|grep "LISTEN"|awk '{print $2}'`
           done
       echo "HELLO jar pid is $HELLO_pid"
       echo "-----------HELLO jar启动成功--------"
   else
       echo "----------------HelloWorldDemo 正在运行请先停止----------"

   fi
fi

stop.sh 停止程序,拷贝最新构建的 jar 到工作目录

sleep 1
    #拷贝jekins 构建的最>新的jar到当前目录
    cp /var/lib/jenkins/workspace/java-test/target/HelloWorldDemo-1.0-SNAPSHOT.jar ./
else
    kill -9 $HELLO_pid
    echo "===hello pid为$HELLO_pid ,已经被停止成功!"
    echo "===正在拷贝jekins自动打包文件,请稍等..."
    sleep 3
    #删除jar
    rm -rf HelloWorldDemo-1.0-SNAPSHOT.jar
    sleep 1
    ##拷贝jekins 构建的最>新的jar到当前目录
    cp /var/lib/jenkins/workspace/java-test/target/HelloWorldDemo-1.0-SNAPSHOT.jar ./
    sleep 2
    if [ ! -f "$myFile" ]; then
        echo "===文件拷贝失败==="
    else
        echo "===文件拷贝成功==="
    fi
    echo "正在执行start脚本"
   # source /usr/local/java/hellojekins/start.sh
fi

选择不同分支打包 插件安装 Git Parameter

Jenkins shell自动更新代码_Jenkins shell自动更新代码_18


Jenkins shell自动更新代码_jar_19


Jenkins shell自动更新代码_java_20


Jenkins shell自动更新代码_jar_21

**************************************************分割线*******************************************************
java17 + jenkins war包 安装

Jenkins shell自动更新代码_jenkins_22

0. yum install fontconfig 安装指定依赖包
1. 指定Jenkins文件保存路径,如果不设置该变量,Jenkins配置文件等都保存在 ~/.jenkins/ 目录下,不推荐
  export JENKINS_HOME=/usr/local/jenkins/home
2. 进入 /usr/local/jenkins/ 创建文件夹 jenkins-log
3. 启动Jenkins
  nohup java -jar /usr/local/jenkins/jenkins.war --httpPort=9080 > /usr/local/jenkins/jenkins-log/jenkins.log 2>&1 &
4. 查看端口
  lsof -i :9080   # 查看端口是否使用
5. 修改配置文件(/usr/local/jenkins/home/hudson.model.UpdateCenter.xml),将url中的数据改为国内清华源:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 然后重启Jenkins
6. 找到密码
   cat /usr/local/jenkins/home/secrets/initialAdminPassword