jenkins部署java项目,脚本文件放在远程仓库中 和jar一起打包(六)

jenkins部署java项目到远程linux上,脚本文件和项目一起上传到gogs上,直接执行gogs上的脚本文件来执行项目

(1)新建maven项目

pom.xml的配置


  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4.0.0

    cn.demo
    jenkins_jar
    0.0.1-SNAPSHOT
    jar
    jenkins_jar
    http://maven.apache.org
  
    
        jenkins_jar
        
            
                true
                org.apache.maven.plugins
                maven-compiler-plugin
                3.1
                
                    ${compiler.source}
                    ${compiler.target}
                    ${project.build.sourceEncoding}
                
            
            
              
                org.apache.maven.plugins  
                maven-jar-plugin  
                2.6  
                  
                      
                      
  
                          
                            cn.demo.jenkins_jar.demo.Demo  
                          
                       
                      
                  
              
            
             
               org.apache.maven.plugins 
                maven-assembly-plugin
                2.4.1
                
                    
                        ${project.version}
                        package   
                        
                            single      
                        
                        
                        
                                
                                script.xml
                            
                            
                            false
                        

                    

                

            




    
        UTF-8
        1.7
        1.7
        4.12
    

    
        
            junit
            junit
            ${junit.version}
            test
        
        
        
View Code

>maven-assembly-plugin插件指定的 script.xml文件 (文件存放的位置:直接在项目下 (非src))

script.xml


         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2
          http://maven.apache.org/xsd/assembly-1.1.2.xsd">

    script

    
        zip
    

    
        
            script
            / 
        
    

View Code

在该项目下直接新建文件夹 script ,在文件夹下新建脚本文件 start.sh  内容如下

start.sh

#!/bin/sh
cd /root/home/program/pro_java/

#得到进程ID pid,kill该进程
pid=`cat /root/home/program/pro_java/pid`
if [ -n "$pid" ]
then
    echo "kill -9 的pid:" $pid
    kill -9 $pid
fi

#执行jar,并将进程挂起,保存进程ID到 pid文件
echo "Execute shell Finish"
BUILD_ID=dontKillMe nohup java -jar /root/home/program/pro_java/jenkins_jar.jar  & echo "$!" > pid
View Code

 

 

(2)新建jenkins项目,选择构建maven项目,开始配置

项目名称:新建项目时,填的名称

描述:这里是对项目的描述,解释 自己定义就行了 不影响

jenkins部署java项目,脚本文件放在远程仓库中 和jar一起打包(六)_第1张图片

 

源码管理: Git

Repository URL:这里填gogs的仓库地址

Credential:这里选择gogs的登录账号和密码(如果没有就点击右侧的add按钮,添加  只需要填写 用户名和密码就可以了)

jenkins部署java项目,脚本文件放在远程仓库中 和jar一起打包(六)_第2张图片

 

构建触发器(这里的配置其实都没什么影响,随便写个令牌,只要选中了触发远程构建就行了,在gogs上对应的仓库里配置web钩子就行)

使用web钩子的作用:只有远程代码有push ,jenkins就会自动构建 (推荐使用)

也可以不选择触发远程构建,选中Poll SCM 配置 H/5 * * * * 表示每5分钟检查一次代码,发现有变动就触发构建 ,但是这种效率不好,不推荐

jenkins部署java项目,脚本文件放在远程仓库中 和jar一起打包(六)_第3张图片

 

Build 执行构建pom.xml

执行 maven命令clean package,先clean项目,再重新打包编译

Post Steps:这个勾中第一个就行了,表示构建成功时才运行

jenkins部署java项目,脚本文件放在远程仓库中 和jar一起打包(六)_第4张图片

 

点击 add-post build step

选择 send files or execute commands over SSH

jenkins部署java项目,脚本文件放在远程仓库中 和jar一起打包(六)_第5张图片

 

进入如下配置

SSH Server   ,

Name: [email protected]   //安装publish over SSH插件,进行系统设置时的配置 Name名 

Source files: target/jenkins_jar.jar,target/jenkins_jar-script.zip  将项目的jar包传送到服务器,将打包shell脚本的zip压缩包传给服务器  //表示需要传送的文件,多个文件用逗号分开 

remove prefix:远程linux需要移除的目录名

Remote Directory:远程linux接收这些文件的目录

Exec Command:执行的脚本命令,命令如下

#!/bin/sh
cd /root/home/program/pro_java/   #进入远程目录

unzip -o -d /root/home/program/pro_java/ jenkins_jar-script.zip  #将存放脚本文件的压缩包解压

cd jenkins_jar   #打开解压后的文件夹
sh start.sh  #执行该脚本   该脚本文件内容在文章开头  (1)中

jenkins部署java项目,脚本文件放在远程仓库中 和jar一起打包(六)_第6张图片

 

配置到此结束,可以执行构建了

你可能感兴趣的:(jenkins部署java项目,脚本文件放在远程仓库中 和jar一起打包(六))