![](/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.