使用Jenkins声明式管道构建/创建War文件并将其部署在tomcat中

时间:2018-11-09 14:12:42

标签: tomcat7 jenkins-pipeline war declarative

一个简单的基于Java Web的项目(既不是maven也不是ant,gradle)被推送到bitbucket。

我正在使用从Jenkins中的“ Execute Windows Batch命令”从bitbucket存储库中提取代码并构建war文件。

我用来创建War文件的Windows Batch脚本是:

cd WebContent
jar -cvf Warfilename.war *

在此之后,我将使用war / ear部署到容器,并部署到安装在Windows服务器中的tomcat。

但是我想使用Jenkins声明式管道脚本实现相同的目的,因为我需要在战争部署到生产环境之前获得手动批准。为此,我计划在声明式管道中使用输入命令。

在詹金斯自由式项目战争中,在执行Windows批处理命令中使用jar -cvf Warfilename.war *命令时,这里出现的问题是构建时没有任何问题。

但是当我通过管道类型项目中的声明性管道脚本执行相同操作时,会抛出错误

  

“ jar”未被识别为内部或外部命令,   可操作的程序或批处理文件。

我正在使用的声明性管道脚本:

pipeline {
    agent any

    stages {
        stage('Clone sources') {
            steps {
                checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false,               extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'user1',
                url:'repo-url']]])

            }
        }
        stage('Build War') {
            steps {
                bat '''cd WebContent
                jar -cvf ADLMDashboard.war *'''

            }
        }
        stage('Deploy War to Tomcat') {
            steps {
                echo 'Deploying....'
            }
        }
    }
}

我有两个问题:

  1. 如何解决该错误

      

    “ jar”未被识别为内部或外部命令,可操作程序或批处理文件。

    在管道脚本中使用时发生的

  2. 用于将war文件部署到Windows中安装的tomcat服务器的命令。它的工作原理与将war部署到容器插件相同,即,每次将某些代码签入bitbucket存储库时,都应取消部署和重新部署war文件。

错误屏幕截图:

Jenkins Error

0 个答案:

没有答案