Jenkins插件,如何在远程节点上执行系统命令?
我们公司的Jenkins有主节点和两个从节点。我正在为此写插件。插件要做的一件事是从svn中检出一些文件。无法从插件中提取此操作。为此,我从插件的Java代码执行控制台命令“
svn checkout”。问题在于,svn中的文件被检出到主节点,而不是从节点。如何使文件检出到从站?
回答:
首先,您具有以下对象,通常作为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,以上内容 并不是
直接从工作代码中复制粘贴。
以上是 Jenkins插件,如何在远程节点上执行系统命令? 的全部内容, 来源链接: utcz.com/qa/406458.html