pipeline {
    agent any
    tools {
        jdk "jdk-17.0.11"
        maven "apache-maven-3.8.8"
    }
    stages {
        stage('拉取代码') {
            steps {
                echo '开始拉取代码'
                checkout scmGit(branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[credentialsId: '3', url: 'http://175.6.124.250:3100/luozhun/policeSecurity.git']])
                echo '代码拉取成功'
            }
        }
        stage('构建后台服务') {
            steps{
                echo '开始构建后台服务'
                sh 'cd /var/jenkins_home/workspace/警保联动后端服务/policeSecurityServer && mvn clean -DskipTests=true package -P prod'
                echo '后台服务构建完成'
            }
        }
        stage('ssh远程推送代码'){
            steps{
                echo '开始推送构建产物'
                script{
                    def remote = [:]
  	                remote.name = 'server-118.253.177.137'
  	                remote.host = '118.253.177.137'
  	                remote.port = 55555
                    remote.allowAnyHosts = true
                    withCredentials([usernamePassword(credentialsId: '4', passwordVariable: 'password', usernameVariable: 'username')]) {
                        remote.user = "${username}"
                        remote.password = "${password}"
                    }
                    sshCommand remote: remote, command: 'pwd=$(pwd) echo "ssh连接成功！当前工作目录：$(pwd)"'

                    sshCommand remote: remote, command: 'echo "停止后台服务..."'
                    sshCommand remote: remote, command: '''docker stop policeSecurityServer'''
                    sshCommand remote: remote, command: 'echo "后台服务已停止..."'

                    sshCommand remote: remote, command: 'echo "删除原来的server.jar..."'
                    sshRemove remote: remote, path: '/home/javaProject/policeSecurity/policeSecurityServer.jar'
                    sshCommand remote: remote, command: 'echo "server.jar删除成功!"'

                    sshCommand remote: remote, command: 'echo "将构建的server.jar发送到服务器..."'
                    sshPut remote: remote, from: '/var/jenkins_home/workspace/警保联动后端服务/policeSecurityServer/target/policeSecurityServer.jar', into: '/home/javaProject/policeSecurity'
                    sshCommand remote: remote, command: 'echo "server.jar发送成功!"'

                    sshCommand remote: remote, command: 'echo "启动后台服务..."'
                    sshCommand remote: remote, command: '''docker start policeSecurityServer'''
                    sshCommand remote: remote, command: 'echo "后台服务启动成功!"'
                }
            }
        }
    }
}