繁体   English   中英

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

[英]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上,我找到了有关如何从另一个文件实例化类的示例,例如herehere ,并且可以解决以下问题:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM