Jenkins种子工作(没有这样的文件或目录)

时间:2017-06-14 22:21:12

标签: java jenkins groovy jenkins-plugins jenkins-job-dsl

所以我现在正在詹金斯做种子工作,我收到了这个错误

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文件,它位于同一工作空间中,这很奇怪。我正在使用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 

2 个答案:

答案 0 :(得分:3)

问题是groovy脚本正在主节点上搜索我的.cvs文件而不是我的远程工作区,其中文件存储由daggett指出。我的解决方案是:

def file = readFileFromWorkspace('weblogic-apps-auto.csv')
file.splitEachLine(",")
{
    fields ->
        println "Evaluting .csv values: " + fields[0] + ", " + fields[1] + ", " + fields[2] +", " + fields[3];
}

答案 1 :(得分:2)

您的testDSLAuto.groovy被称为具有自己当前目录的java进程。

通常它是workspace目录。但最好检查一下这段代码:

def currentDir = new File(".").getAbsolutePath()
println currentDir

然后您应该根据csv路径定义current dir文件的相对路径。