一个简单的基于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....'
}
}
}
}
我有两个问题:
如何解决该错误
在管道脚本中使用时发生的“ jar”未被识别为内部或外部命令,可操作程序或批处理文件。
。
用于将war文件部署到Windows中安装的tomcat服务器的命令。它的工作原理与将war部署到容器插件相同,即,每次将某些代码签入bitbucket存储库时,都应取消部署和重新部署war文件。
错误屏幕截图: