做网站怎么推广收益大,太原网站制作优化seo,联通最低套餐,国家企业信息公示(全国)上一篇文章 Jenkins集成SonarQube代码质量检测
一、实验环境 jenkins环境 jenkins入门与安装 容器为docker 主机IP系统版本jenkins10.10.10.10rhel7.5
二、OpenSSH安装 1、下载 官网地址#xff1a;https://learn.microsoft.com/zh-cn/windows-server/administration/op…上一篇文章 Jenkins集成SonarQube代码质量检测
一、实验环境 jenkins环境 jenkins入门与安装 容器为docker 主机IP系统版本jenkins10.10.10.10rhel7.5
二、OpenSSH安装 1、下载 官网地址https://learn.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse Win32-OpenSSH下载地址https://github.com/PowerShell/Win32-OpenSSH/releases 下载版本v9.2.2.0p1-Beta Windows Server 2019、Windows 10、Windows Server 2022可以直接使用Windows设置安装来安装OpenSSH可直接参考微软官网中OpenSSH管理Windows进行安装但是由于本机是winserver2016所以使用Win32-OpenSSH来进行安装 2、安装
1打开PowerShell 在对应目录打开PowerShell 2进行安装
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps13、配置OpenSSH服务 如果想方便调用可以设置环境变量 1打开防火墙22端口
netsh advfirewall firewall add rule namesshd dirin actionallow protocolTCP localport222设置开机自启
Set-Service -Name sshd -StartupType Automatic3启动 Start-Service sshd三、jenkins配置 1、配置连接用户 系统管理 --系统配置–Publish over SSH 2、创建pipeline 注Publish over SSH中execCommand后面传入参数末尾要有个空格 mvn编译通过-pl指定编译模块如果不需要/usr/local/maven/bin/mvn clean install package -Dmaven.test.skiptrue即可 pipeline {agent anyenvironment { PROJECT_NAMEtest-monitor UPDATE_BATD:\\project\\update\\update.batDEST_JAR_PATHD:\\project\\mission\\${PROJECT_NAME}.jarSOURCE_JAR_PATHC:\\${JOB_NAME}\\${PROJECT_NAME}.jarPORT8709}stages {stage(git拉取代码) {steps {checkout scmGit(branches: [[name: */master]], extensions: [], userRemoteConfigs: [[credentialsId: e87fcb1b-fb2b-xxxx-xxxx-16d1ca8bf5fb, url: https://gitee.com/xxxx.git]])}}stage(maven编译代码) {steps {sh JAVA_HOME/usr/local/jdkPATH$PATH:$JAVA_HOME/bin/usr/local/maven/bin/mvn clean install package -Dmaven.test.skiptrue -pl ${PROJECT_NAME}}}stage(发送到服务器) {steps {script() {deploy()}}}}
}def deploy() {sshPublisher(publishers: [sshPublisherDesc(configName: xxxx-winserver-test,transfers: [sshTransfer(cleanRemote: false, excludes: , execCommand: cmd /c call ${UPDATE_BAT} ${DEST_JAR_PATH} ${SOURCE_JAR_PATH} ${PORT} , execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: [, ], remoteDirectory: ${JOB_NAME}, remoteDirectorySDF: false, removePrefix: ${PROJECT_NAME}/target, sourceFiles: ${PROJECT_NAME}/target/*.jar)], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}update.bat 根据业务进行自我修改 echo off
set JAR_PATH_NAME_DEST%1
set JAR_PATH_NAME_SOURCE%2
set JAR_PORT%3
set CURRENT_TIME%date:~0,4%%date:~5,2%%date:~8,2%rem 查找占用指定端口的进程ID
for /f tokens5 %%a in (netstat -ano ^| findstr :%JAR_PORT%) do set pid%%aif %pid% (echo 没有找到占用端口 %port% 的进程。
) else (taskkill /pid %pid% /f
)REM 备份
move %JAR_PATH_NAME_DEST% %JAR_PATH_NAME_DEST%-%CURRENT_TIME%move %JAR_PATH_NAME_SOURCE% %JAR_PATH_NAME_DEST%
exit 0