4

java.lang.NoSuchMethodError:在步骤 [archive、bat、build、catchError、checkout、deleteDir、dir、dockerFingerprintFrom、dockerFingerprintRun、echo、emailext、emailextrecipients、envVarsForTool、error、fileExists、getContext、git 中找不到这样的 DSL 方法“publishOverSsh” , 输入, isUnix, libraryResource, load, 邮件, 里程碑, 节点, 并行, 属性, pwd, readFile, readTrusted, resolveScm, retry, script, sh, sleep, stage, stash, step, svn, timeout, timestamps, tool, unarchive , unstash, waitUntil, withContext, withCredentials, withDockerContainer, withDockerRegistry, withDockerServer,

4

1 回答 1

5

我使用 Jenkins groovy DSL 在远程机器上使用了 SCP 和 SSH,使用了 Sh:shell 脚本。

在此之前用于ssh-keygen在主机和 Jenkins 之间创建连接以进行无密码身份验证。

对于无密码的 SSH 登录:

1) 使用 ssh-keygen 使用以下命令创建 ssh 公钥和私钥:

$ssh-keygen

2) 将公钥复制到远程主机中。ssh/authorized_keys文件。

3)现在登录到远程机器没有密码。

现在要将包发布到远程服务器,请在 Jenkinsfile 脚本框中使用以下命令:

sh 'scp -r ./tests ubuntu@HOST_IP/URL:/home/ubuntu/'

//to execute commands over ssh on remote host which is written in test-script.sh file

sh 'ssh ubuntu@HOST_IP/URL <  test-script.sh'

// For echo environmental variables BUILD_ID

echo "Running ${env.BUILD_ID} on ${env.JENKINS_URL}"
于 2017-03-02T10:30:28.280 回答