ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【软件工具】如何使用 Jenkins 构建并摆设一个 WAR 包到相应的服务器上 [打印本页]

作者: 水军大提督    时间: 2024-6-14 12:05
标题: 【软件工具】如何使用 Jenkins 构建并摆设一个 WAR 包到相应的服务器上
一、使用 Jenkins 构建并摆设一个 WAR 包到相应的服务器上

使用 Jenkins 构建并摆设一个 WAR 包到相应的服务器上,可以通过在 Jenkinsfile 中定义一系列步骤来实现。假设你需要在构建完成后将 WAR 文件复制到长途服务器,并执行相应的启动和停止命令,以下是一个示例 Jenkinsfile,可以资助你实现这个流程。
示例 Jenkinsfile

  1. pipeline {
  2.     agent any
  3.     environment {
  4.         REMOTE_USER = 'your-remote-user'        // 远程服务器用户名
  5.         REMOTE_HOST = 'your-remote-host'        // 远程服务器地址
  6.         REMOTE_DIR = '/path/to/remote/dir'      // 远程服务器上的目标目录
  7.         WAR_FILE = 'your-application.war'       // WAR 文件名称
  8.         SSH_KEY = credentials('your-ssh-key-id') // Jenkins 中存储的 SSH 密钥凭证 ID
  9.     }
  10.     stages {
  11.         stage('Build') {
  12.             steps {
  13.                 // 假设你使用 Maven 构建 WAR 包
  14.                 sh 'mvn clean package'
  15.             }
  16.         }
  17.         stage('Deploy') {
  18.             steps {
  19.                 script {
  20.                     // 将 WAR 包上传到远程服务器
  21.                     sshagent(['your-ssh-key-id']) {
  22.                         sh """
  23.                             scp -o StrictHostKeyChecking=no target/${WAR_FILE} ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}
  24.                         """
  25.                     }
  26.                 }
  27.             }
  28.         }
  29.         stage('Stop Server') {
  30.             steps {
  31.                 script {
  32.                     // 停止远程服务器上的应用程序
  33.                     sshagent(['your-ssh-key-id']) {
  34.                         sh """
  35.                             ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} 'bash -c "cd ${REMOTE_DIR} && ./stop.sh"'
  36.                         """
  37.                     }
  38.                 }
  39.             }
  40.         }
  41.         stage('Start Server') {
  42.             steps {
  43.                 script {
  44.                     // 启动远程服务器上的应用程序
  45.                     sshagent(['your-ssh-key-id']) {
  46.                         sh """
  47.                             ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} 'bash -c "cd ${REMOTE_DIR} && ./start.sh"'
  48.                         """
  49.                     }
  50.                 }
  51.             }
  52.         }
  53.     }
  54.     post {
  55.         always {
  56.             // 清理工作或发送通知
  57.             echo 'Pipeline finished'
  58.         }
  59.     }
  60. }
复制代码
具体解释

准备工作


留意事项


通过这种方式,你可以实现从构建、摆设到启动和停止应用步伐的完备自动化流程,提高摆设效率和可靠性。
二、在 Jenkins 中,构建天生的 WAR 包通常存放在项目标工作空间(workspace)目录下

在 Jenkins 中,构建天生的 WAR 包通常存放在项目标工作空间(workspace)目录下。具体路径取决于你的构建配置和工具(如 Maven、Gradle 等)的输出目录设置。
以下是一个常见的例子,假设你使用的是 Maven 构建工具:
Maven 构建项目

当你使用 Maven 构建项目并天生 WAR 包时,WAR 文件通常会被放置在项目标 target 目录中。
假设你的 Maven 项目布局如下:
  1. my-project/
  2.   ├── src/
  3.   ├── pom.xml
  4.   └── target/
  5.        └── my-application.war
复制代码
Jenkins 构建过程

在 Jenkins 中,当你配置一个构建任务(Job)并执行构建时,Jenkins 会为该任务创建一个工作空间目录,构建过程将在这个目录中进行。
示例 Jenkinsfile

以下是一个示例 Jenkinsfile,它展示了如何在构建完成后将 WAR 包复制到长途服务器,并执行启停命令。
  1. pipeline {
  2.     agent any
  3.     environment {
  4.         REMOTE_USER = 'your-remote-user'        // 远程服务器用户名
  5.         REMOTE_HOST = 'your-remote-host'        // 远程服务器地址
  6.         REMOTE_DIR = '/path/to/remote/dir'      // 远程服务器上的目标目录
  7.         WAR_FILE = 'my-application.war'         // WAR 文件名称
  8.         SSH_KEY = credentials('your-ssh-key-id') // Jenkins 中存储的 SSH 密钥凭证 ID
  9.     }
  10.     stages {
  11.         stage('Build') {
  12.             steps {
  13.                 // 假设你使用 Maven 构建 WAR 包
  14.                 sh 'mvn clean package'
  15.             }
  16.         }
  17.         stage('Deploy') {
  18.             steps {
  19.                 script {
  20.                     // 将 WAR 包上传到远程服务器
  21.                     sshagent(['your-ssh-key-id']) {
  22.                         sh """
  23.                             scp -o StrictHostKeyChecking=no target/${WAR_FILE} ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}
  24.                         """
  25.                     }
  26.                 }
  27.             }
  28.         }
  29.         stage('Stop Server') {
  30.             steps {
  31.                 script {
  32.                     // 停止远程服务器上的应用程序
  33.                     sshagent(['your-ssh-key-id']) {
  34.                         sh """
  35.                             ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} 'bash -c "cd ${REMOTE_DIR} && ./stop.sh"'
  36.                         """
  37.                     }
  38.                 }
  39.             }
  40.         }
  41.         stage('Start Server') {
  42.             steps {
  43.                 script {
  44.                     // 启动远程服务器上的应用程序
  45.                     sshagent(['your-ssh-key-id']) {
  46.                         sh """
  47.                             ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} 'bash -c "cd ${REMOTE_DIR} && ./start.sh"'
  48.                         """
  49.                     }
  50.                 }
  51.             }
  52.         }
  53.     }
  54.     post {
  55.         always {
  56.             // 清理工作或发送通知
  57.             echo 'Pipeline finished'
  58.         }
  59.     }
  60. }
复制代码
关键点

确认 WAR 包位置

在你的 Jenkins 工作空间中,你可以通过以下方式确认天生的 WAR 包位置:
通过这些步骤和示例,你可以确认 WAR 包的天生位置,并将其摆设到长途服务器上,确保应用步伐的自动化构建和摆设流程顺遂进行。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4