我是Jenkins Pipelines的新手。我从git和编译中提取了这个小的Groovy脚本。
node('master') {
def workspace = pwd()
stage 'Git pull'
git branch: 'develop',
credentialsId: 'Cred_xxxx',
url: 'https://xxxx/yyyy.git'
stage 'Builing'
def mvnHome = tool name: 'Maven3', type: 'hudson.tasks.Maven$MavenInstallation'
sh "cd ${workspace}/tlt/; ${mvnHome}/bin/mvn install -Pdevelopment"
sh "cd ${workspace}"
}
现在我想在Tomcat7上部署文件tlt/target/tlt.war
。
之前的方法是填补"部署战争/耳朵到容器"插入。
现在,我不知道如何使用Groovy做到这一点。
感谢
里卡多
答案 0 :(得分:6)
使用Jenkinsfile时,你需要使用groovy脚本将war自己复制到tomcat。
如果Tomcat位于同一台服务器上,您可以这样做:
sh 'cp tlt/target/tlt.war TOMCAT_DIRECTORY/webapps/'
如果在其他主机上,您需要执行scp
并配置用户和密码:
sshagent(['CREDENTIALS_ID']) {
sh 'scp tlt/target/tlt.war some-remote-host:/LOCATION/TOMCAT/webapps/'
}
其中CREDENTIALS_ID
是您需要在jenkins凭证页面中添加的凭据的URL中的ID(它位于网址中,如4644a37d-4291-474e-813b-14b58bef1125)。
答案 1 :(得分:1)
另一种解决方案,更简单的方法是创建一个仅包含“将war / ear部署到容器”的任务的Job,并通过Groovy中的“build”命令调用它。
答案 2 :(得分:0)
只需要让用户,就像这样:
sshagent(['CREDENTIALS_ID']) {
sh 'scp tlt/target/tlt.war root@some-remote-host:/LOCATION/TOMCAT/webapps/'
}
在此步骤中没有用户任务块