使用另一个groovy文件中的类作为Jenkins管道脚本中的类型

时间:2017-10-10 10:27:06

标签: jenkins groovy

我是一个时髦的新手,所以不确定这是否可行。我需要像导入一样的东西,但并不完全。这是我正在尝试做的简化代码示例:

文件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中看不到类。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分: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'))