一尘不染

Jenkins插件,如何在远程节点上执行系统命令?

jenkins

我们公司的Jenkins有主节点和两个从节点。我正在为此写插件。插件要做的一件事是从svn中检出一些文件。无法从插件中提取此操作。为此,我从插件的Java代码执行控制台命令“
svn checkout”。问题在于,svn中的文件被检出到主节点,而不是从节点。如何使文件检出到从站?


阅读 399

收藏
2020-07-25

共1个答案

一尘不染

首先,您具有以下对象,通常作为perform方法的参数接收:

Launcher launcher;
AbstractBuild<?, ?> build;
BuildListener listener;

然后,您已经创建了参数并将其添加到argumentsListBuilder,可能类似于:

ArgumentListBuilder command = new ArgumentListBuilder();
command.addTokenized("xcopy /?");

然后,执行以下操作:

ProcStarter ps = launcher.new ProcStarter();
ps = ps.cmds(command).stdout(listener);
ps = ps.pwd(build.getWorkspace()).envs(build.getEnvironment(listener));
Proc proc = launcher.launch(ps);
int retcode = proc.join();

ProcStarter将在launcher实例指定的节点上运行命令。但是在使用之前,请至少先浏览一下以上所有类的javadocs,以上内容 并不是
直接从工作代码中复制粘贴。

2020-07-25