Nat*_*ier 4 groovy hudson jenkins
我想做一些非常简单的事情:通过jenkins groovy post-build脚本插件创建/写入位于从站的远程工作空间中的文件
def props_file = new File(manager.build.workspace.getRemote() + "/temp/module.properties")
def build_num = manager.build.buildVariables.get("MODULE_BUILD_NUMBER").toInteger()
def build_props = new Properties()
build_props["build.number"] = build_num
props_file.withOutputStream { p ->
build_props.store(p, null)
}
Run Code Online (Sandbox Code Playgroud)
最后一行失败,因为该文件不存在.我认为它与指向主执行器的输出流有关,而不是远程工作区,但我不确定:
Groovy script failed:
java.io.FileNotFoundException: /views/build_view/temp/module.properties (No such file or directory)
Run Code Online (Sandbox Code Playgroud)
我没有正确写入文件吗?
AJ.*_*J.P 11
在写入slave时,您需要先检查通道,然后才能成功创建文件句柄并开始读取或写入该文件:
if(manager.build.workspace.isRemote())
{
channel = manager.build.workspace.channel;
}
fp = new hudson.FilePath(channel, manager.build.workspace.toString() + "\\test.properties")
if(fp != null)
{
String str = "test";
fp.write(str, null); //writing to file
versionString = fp.readToString(); //reading from file
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
The post build plugin runs on the manager and doing it as you say will fail if you are working with slaves!
在插件页面(您提供的链接)上搜索单词,看看那里的解决方法是否有帮助。
归档时间: |
|
查看次数: |
11797 次 |
最近记录: |