部署过程中,真的遇到了超级多超级多的问题,很多人环境不一样,找到能配套上的部署版本真的太不容易了,TAT祭奠被我浪费的好几天宝贵时间

我写这篇博客就是为了以后自己想用的时候用得上,每个人配置不一样,所以我的配置对你们来说不一定有效,你们参考就好,下面没截图的都是我没设置的

首先,gitblit要配置,传送门:

这下面开始,得拿到创建这个gitblit仓库的服务器的账号密码,然后创建库的人才有编辑版本库的权限

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_maven

 配好了之后就可以开始新建项目了

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jenkins_02

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jenkins_03

 没有这项就下载插件

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jenkins_04

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_maven_05

 下载好了回到刚才部署界面

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_maven_06

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jar_07

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jar_08

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jar包_09

clean install -Dmaven.test.skip=true -Ptest

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_spring boot_10

ssh server的配置在首页 

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jenkins_11

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jar_12

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jenkins_13

 没有publish on ssh的需要下载插件,之前部署的可以保存一下,然后再去下插件

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_spring boot_14

 

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jar包_15

 然后继续刚才部署项目的界面

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jar包_16

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jenkins_17

stop.bat

这个文件你放到远程服务器上你找个文件夹放下,然后只要修改端口就行了,这个命令我也是从网上查的,然后自己修改了一下,因为我的bat能力有限

@echo off
setlocal enabledelayedexpansion
set port=8899
for /f "tokens=1-5" %%a in ('netstat -ano ^| find ":%port%"') do (
    if "%%e%" == "" (
        set pid=%%d
    ) else (
         set pid=%%e
    )
    echo !pid!
)
if NOT "!pid!" == "" if NOT "!pid!" == "0" (
   taskkill /f /pid !pid!
)

我这边transfer为什么是空的,我需要解释一下
我在这边设置了两个transfers,我真的试了很久很多方式才试出来
我原本一直想不明白,为什么老是失败,或者是jar包都传过去了为什么命令还是不开启
后来我总算想明白了,也可能只是我的猜测
1)可能远程服务器那个jar包正在跑,你用ssh传过去的时候,同名会替换,可是那个jar包还在运行,端口还在被占用,咋么能替换呢,所以出现了失败
2)你杀端口的命令有没有做判断,要是没这个端口,还杀端口,那不是找不到进程吗
3)你命令里有没有pause什么的语句,我当时在远程服务器加了个pause就是为了看到cmd窗口,看看它输出什么,后来忘记把它删了,jenkins运行的时候,就停住不动了

正常我们部署jar包过程应该是,你先查看该端口的进程存不存在,然后杀死该端口,然后把原先的jar包删除或者替换,再java -jar开启命令

后来我的解决办法是:

transfer1:把端口杀死(D:\henu\test\stop.bat)

transfer2:用ssh传输jar包,然后java -jar运行(java -jar D:\henu\test\WorkFlowServer.jar)

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jar_18

就是用两个transfer,至于为什么用两个,我是看到下面它这边有个提示说:如果你想在文件传输之前使用Exec命令,那你可以使用两个transfer,然后将Exec命令(传输前想使用的Exec命令)移动到包含源文件的传输集(要用ssh传输文件的transfer)之前

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jenkins_19

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_spring boot_20

 好了之后就可以build的,查看输出日志看看有没有错

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jar_21

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jenkins_22

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_maven_23

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_maven_24

jenkins Git Credentials 是所有人共享吗 jenkins gitblit_jenkins_25