簡體   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