Ich habe das selbst vor kurzem mit wenig Erfolg versucht. Es scheint ein Problem damit zu geben. Nach dem documentation for class FileParameterValue gibt es einen Konstruktor, der so ein java.io.File
wie akzeptiert:
@DataBoundConstructor
FileParameterValue(String name,
org.apache.commons.fileupload.FileItem file)
Es gibt eine andere wich ist erwartet ein FileItem
etwa so:
FileParameterValue(String name,
File file,
String originalFileName)
Da aber nur die erstere mit @DataBoundConstructor
selbst kommentierte, wenn ich versuche, diese in einem Skript zu verwenden:
file = new File(pwd(), 'test.txt');
build(
job: 'jobB',
parameters: [
[$class: "FileParameterValue", name: "TEST_FILE", file: file, originalFileName: 'test.txt']
]
)
Beachten Sie, dass diese requi res Skript Genehmigung für
java.io.File
Instanziieren ... Ich erhalte die folgenden Fehler:
java.lang.ClassCastException: hudson.model.FileParameterValue.file expects interface org.apache.commons.fileupload.FileItem but received class java.io.File
ich, dass nur eine Datei durch den Benutzer als interaktiver Runtime-Eingang hochgeladen verstehe ein Objekt vom Typ bietet org.apache.commons.fileupload.FileItem
so in dem Ende Ich griff auf archiving the file im ersten Job und unarchiving es in der nachgelagerten Job, und habe das Problem umgehen. Es ist natürlich nicht ideal, aber wenn du in einem Jam bist, ist es der schnellste Weg, es zu klären.