Jenkins2 Pipeline:在tomcat上部署

时间:2016-06-13 10:49:05

标签: tomcat jenkins jenkins-pipeline

我是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做到这一点。

感谢
里卡多

3 个答案:

答案 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/'
}

在此步骤中没有用户任务块