所以我现在正在 Jenkins 中从事种子工作,但出现此错误
Processing DSL script testDSLAuto.groovy
FATAL: /pathto/weblogic-apps-auto.csv (No such file or directory)
java.io.FileNotFoundException: /pathto/weblogic-apps-auto.csv (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
我真的不确定为什么会导致这样的错误。为了进行测试,我在文件上做了一个chmod 777。它还找到了我的 .groovy 文件,该文件位于同一个工作区中,这很奇怪。我正在为时髦的文件使用相对路径,并对.csv文件尝试了同样的事情。
当我运行作业时,我还执行了一个 shell 脚本,以便您可以看到它在工作区中。
+ pwd
/home/jenkins/workspace/Denver_Jenkins/SeedJob-CreateAutoBuilds
+ ls -l
total 32
-rwx------ 1 jenkins jenkins 6504 Jun 14 22:11 testDSLAuto.groovy
-rwxrwxrwx 1 jenkins jenkins 20496 Jun 14 20:00 weblogic-apps-auto.csv
问题是时髦的脚本正在主节点上搜索我的 .cvs 文件,而不是像 daggett 指出的那样存储文件的远程工作区。我的解决方案是:
def file = readFileFromWorkspace('weblogic-apps-auto.csv')
file.splitEachLine(",")
{
fields ->
println "Evaluting .csv values: " + fields[0] + ", " + fields[1] + ", " + fields[2] +", " + fields[3];
}
你的testDSLAuto.groovy被调用为具有自己的当前目录的java进程。
通常它是一个workspace
目录。 但最好检查一下这段代码:
def currentDir = new File(".").getAbsolutePath()
println currentDir
然后,您应该根据current dir
路径定义csv
文件的相对路径。