![](/img/trans.png)
[英]Using an enum loaded from another Groovy file (Jenkins Pipeline issue)
[英]Using class from another groovy file as a type in a Jenkins pipeline script
我是个新手,所以不确定是否可行。 我需要类似导入的内容,但不是完全一样。 这是我要执行的简化代码示例:
在文件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中不可见。
有没有办法做到这一点?
我不确定您是如何尝试设置类库的,但是在使用管道共享库中的类时我尝试了相同的方法,并且它按预期工作了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'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.