// 下階層用テンプレート #topicpath ---- //ここにコンテンツを記述します。 #contents ** Jenkinsの抽象化されたjava.io.Fileである FilePath [#o7ffc559] ビルドのジョブが動くノード((マスターかスレーブか))によって、ワークスペースのパスは異なっていたりします。なのでJenkinsのファイルシステムはjava.io.Fileに似た FilePathというパスが抽象化されたクラスを使用します。以下サンプルコード。 @Override public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { FilePath root = build.getModuleRoot(); // ワークスペースのルート.スレーブでビルドが動くと、他サーバのディレクトリだったりする。 FilePath fromFile = new FilePath(root, "from.txt"); System.out.println(fromFile); FilePath toFile = new FilePath(new FilePath(build.getRootDir()), "to.txt"); // ココはビルドのルートで、必ずMasterサーバ上にある System.out.println(toFile); fromFile.copyTo(toFile); // こんな感じにノード間でコピーできる。 // (このビルドがスレーブで動く場合、スレーブのワークスペースのファイルが、マスターサーバにコピーされたりする。) return true; } このように動いているサーバを抽象化し、ノード間のコピーもシームレスにできたりします。便利ですね。。 実行結果は [省略]/workspace/hoge/work/jobs/Test/workspace/from.txt [省略]/workspace/hoge/work/jobs/Test/builds/2015-09-25_13-12-45/to.txt となります。これはマスタで動いてしまいましたが、一行目はワークスペースなので場合によっては別ノードのパスになります。逆に二行目はビルドパスなので必ずマスターサーバのパスになります。 ---- この記事は #vote(おもしろかった,そうでもない) #comment #topicpath SIZE(10){現在のアクセス:&counter;}