我正在尝试在 Jenkinsfile 中使用 Publish over SSH 插件。但是,我在 createClient
方法中得到了异常 java.io.NotSerializableException
。这是我的代码:
def publish_ssh = Jenkins.getInstance().getDescriptor("jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin")
def hostConfiguration = publish_ssh.getConfiguration("${env.DSV_DEPLOY_SERVER}");
if( hostConfiguration == null )
{
currentBuild.rawBuild.result = Result.ABORTED
throw new hudson.AbortException("Configuration for ${env.DSV_DEPLOY_SERVER} not found.")
}
def buildInfo = hostConfiguration.createDummyBuildInfo();
def sshClient = hostConfiguration.createClient( buildInfo, new BapSshTransfer(
env.SOURCE_FILE,
null,
env.DSV_DEPLOY_REMOTE_DIR,
env.REMOVE_PREFIX,
false,
false,
env.DSV_DEPLOY_COMMAND,
env.DSV_DEPLOY_TIMEOUT as Integer,
false,
false,
false,
null
));
我怎样才能消除异常?
这是因为有些变量是不可序列化的。
从文档
由于管道必须在 Jenkins 重新启动后继续运行,因此正在运行的程序的状态会定期保存到磁盘,以便以后可以恢复(保存发生在每个步骤之后或步骤的中间,例如 sh
)。
您可以使用@NonCPS
注释来创建,使用
@NonCPS
def createSSHClient() {
// your code here.
}
我正在尝试在 Jenkinsfile 中使用 Publish over SSH 插件。但是,我在 方法中得到了异常 。这是我的代码: 我怎样才能消除异常?
问题内容: 在Jenkins “通过Ssh发布”插件中,如何使用Label(高级选项)又称为参数化发布功能。如何使用标签字段。我要在“标签”字段中输入什么。我是否需要放置一个具有Machine Name的变量名(我可以从build参数读取一个变量名)。我尝试了同样的方法这是我所做的: 我的机器名称为QA_1,并且有一个变量jenkins build $ MC_NAME指向XXX。我在LABEL字段
java.lang.NoSuchMethodError:在步骤中找不到这样的DSL方法“PublishOversh”[archive,bat,build,catchError,checkout,deleteDir,dir,dockerFingerprintFrom,Docker FingerPrintRun,echo,emailext,EmailExtrecients,envVarsForTool
问题内容: Jenkins要求使用证书才能使用 ssh 发布和 ssh 命令。可以在下进行配置。 问题是:如何创建证书? 我有两台ubuntu服务器,一台运行Jenkins,一台用于运行应用程序。 我应该设置Jenkins证书并将其一部分放置在部署框中,还是将证书设置在部署框上并将其一部分放置在Jenkins上?证书是否需要使用名为Jenkins的用户名,或者可以用于任何用户?我们在开发箱上没有J
问题内容: 我有根目录下带有Jenkinsfile的Maven springboot项目。我已经在jenkins文件中编写了阶段来构建jar文件,并且工作正常。下一阶段是``部署’‘,我必须将jar文件移动到Linux服务器并在其中运行它。任何人都可以在jenkinsfile阶段帮助我,如何将jar文件从Jenkins服务器移至另一台服务器并在其中运行。 问题答案: 1.您可以使用SSH上发布插件
问题内容: 我想将文件从我的后期构建Jenkins工作区传输到远程服务器上的某个位置。构建过程顺利进行,但始终传输0个文件。 这是控制台输出: 作业配置为在将任何提交推送到GitHub后进行构建 传输集为:源文件: 删除前缀: 问题答案: 我认为,您的配置存在问题。我们有2个职位要配置。 在系统配置(全局配置)中。->如果测试正常==>可以配置到远程服务器。 在您的项目中。我们将专注于传输集:(源