Jenkins(Windows部署)远程自动化部署java程序

13 篇文章 1 订阅
2 篇文章 0 订阅

思路

利用jenkins+ gitlab+ powershell server for windows+ powershell脚本 实现自动化部署

主要实践步骤

jenkins 操作步骤
  • jenkins 安装maven,publish over ssh等插件
  • 配置gitlab访问权限,如果未安装ssh可以使用http协议(需要配置用户名和密码)
应用服务器操作步骤
  • 在应用服务器安装 powershell server for windows修改默认端口以及在防火墙开通入站权限
  • 编写脚本–新开一个窗口运行命令
$WinPID = netstat -aon |findstr port |D:\software\gawk-3.1.6-1-bin\bin\gawk.exe '{print $5}'| Select  -First 1
if ( "$WinPID" -ne ""){
taskkill /pid "$WinPID" /f
}

cd "D:\autojenkins"
Copy-Item "D:\jenkinstar\a-1.0.0-SNAPSHOT.jar" "D:\autojenkins\" 
Start-Process cmd -ArgumentList '/c java -D"file.encoding=utf-8" -jar a-1.0.0-SNAPSHOT.jar --spring.profiles=dev "&"'

采坑并补填

  • powershell脚本的路径中有字符串空格时会出现错误,需要使用“”变成字符串。
Copy-Item : 找不到接受实际参数“2016\sftproot\a-1.0.0-SNAPSHOT.jar”的位置形式参数。
所在位置 D:\script\start_imodel-server.ps1:2 字符: 1
+ Copy-Item D:\software\PowerShell Server 2016\sftproot\a-1.0.0-SNAPSHO ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   + CategoryInfo          : InvalidArgument: (:) [Copy-Item],ParameterBindingException
   + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.CopyItemCommand
java : 错误: 找不到或无法加载主类 .encoding=utf-8
所在位置 D:\script\start_imodel-server.ps1:3 字符: 1
+ java -Dfile.encoding=utf-8 -jar a-1.0.0-SNAPSHOT.jar --spring.profile ...
  • 使用Get-ExecutionPolicy确认是否可以被远端执行脚本
Set-ExecutionPolicy RemoteSigned / Unrestricted
  • 由于jenkins执行应用服务器的脚本时如果没有在新的命令行窗口执行命令,会将输出结果全部打印在jenkins控制台中,导致构建任务一直在挂起,无法达到自动化部署的运行。
Start-Process cmd -ArgumentList '/c java -D"file.encoding=utf-8" -jar a-1.0.0-SNAPSHOT.jar --spring.profiles=dev "&"'

待补充~~~~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值