我有一个现有的 Jenkins 作业,它手动配置了 UI,用于手动在 XL Deploy 上构建和部署。
我现在正在创建一个带有管道的 Jenkinsfile,当我从 Git 提交某些内容时,它将取代现有的手动构建代码的工作。
我已经为构建、测试覆盖率和归档阶段编写了一个 Jenkinsfile 代码,它工作正常。
但是,唯一的问题是 XL Deploy 阶段出现错误“java.lang.NoSuchMethodError: No such DSL method 'xldCreatePackage' found between steps....”。
我的问题是,如果以前的工作在包括 XL Deploy 在内的所有阶段都取得了成功,那么为什么使用 Jenkinsfile 创建的新工作会出现此错误?
下面是用于 XL Deploy 阶段的代码片段:
stage('DeployIT: Package') {
steps {
script {
def fileContents = readFile file: 'deployit-manifest.xml', encoding: 'UTF-8'
fileContents = fileContents.replace('1.0.0', "1.${env.BUILD_NUMBER}")
fileContents = fileContents.replace('target/XXXXXXXX-0.0.1-SNAPSHOT.war', "target/XXXXXXXX-1.${BUILD_NUMBER}.war")
echo fileContents
writeFile file: 'deployit-manifest.xml', text: fileContents, encoding: 'UTF-8'
xldCreatePackage artifactsPath: 'target', manifestPath: 'deployit-manifest.xml', darPath: 'XXXXXXXX-1.${BUILD_NUMBER}.dar'
}
}
}
部署清单.xml
<?xml version="1.0" encoding="UTF-8"?>
<udm.DeploymentPackage version="1.0.0" application="XXXXXXX/YYYYYYYYY/ZZZZZZZZ">
<application />
<deployables>
<jee.War name="XXXXXXX" file="target/XXXXXXX*.war"/>
</deployables>
<dependencyResolution>LATEST</dependencyResolution>
<undeployDependencies>false</undeployDependencies>
<tags>
<tag>YYYYYYYY</tag>
</tags>
</udm.DeploymentPackage>