我是一个时髦的新手,所以不确定这是否可行。我需要像导入一样的东西,但并不完全。这是我正在尝试做的简化代码示例:
文件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上,我找到了如何从另一个文件实例化一个类的示例,例如here或here,并解决了这个行
F1 = new FileToProcess('A');
但它没有说明如何将该类用作声明中的类型,例如
List<FileToProcess> allFiles = new ArrayList<FileToProcess>();
让我“无法解析类FileToProcess”。我也知道使用类作为这样的类应该可以工作,因为当我将类放在同一个JenkinsFile中时它就会发生,所以问题似乎只是在JenkinsFile中看不到类。
有办法做到这一点吗?
答案 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'))