2017-10-10 18 views
1

我是一个groovy新手,所以不确定这是否可能。我需要像导入一样的东西,但不完全。这里是我想要做的简单代码示例:使用另一个groovy文件中的类作为Jenkins管道脚本中的一个类型

文件FileToProcess.groovy我

class FileToProcess implements Serializable { 
    String FileName 

    FileToProcess(fileName) { 
    this.FileName = fileName; 
    } 
} 

,然后在JenkinsFile我想要做这样的事情

F1 = new FileToProcess('A'); 
List<FileToProcess> allFiles = new ArrayList<FileToProcess>(); 
allFiles.add(F1); 
​for (FileToProcess file : allFiles) { 
    System.out.println(file.FileName); 
} 

现在,在StackOverflow上,我找到了如何从另一个文件实例化类的示例,例如herehere,并且解决了行

F1 = new FileToProcess('A'); 

,但它并不显示如何使用类在声明的类型,例如

List<FileToProcess> allFiles = new ArrayList<FileToProcess>(); 

给我“无法解析类FileToProcess”。我也知道使用类作为这样的类型应该是可行的,因为当我把类放在同一个JenkinsFile中时,所以问题似乎只是该类在JenkinsFile中不可见。

有没有办法做到这一点?

回答

0

我不知道你如何试图设置你的类库,但我试图不变,而使用从管道共享库的一类,它的工作如预期 https://jenkins.io/doc/book/pipeline/shared-libraries/

我确实这样做了一点点不同: 假设你的文件放置src/org/Foo.groovy

import org.Foo 

def list = new ArrayList<Foo> 
list.add(new Foo('str1')) 
list.add(new Foo('str2')) 
+0

顺利进行,我只是旁边JenkinsFile的常规文件,在同一个文件夹中,他们是从混帐詹金斯拉。我没有使用共享库。这是做到这一点的唯一方法吗?我不能只使用加载或直接从文件中导入它? –

+0

我至今只使用了管道库选项。无论如何,我也认为以这种方式管理代码会更好一些 – Kelrak

相关问题