2016-05-18 3 views

Antwort

0

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.

0

Sie können nicht. Hier ist der Jenkins Bug. Aktualisiere diesen Thread, sobald der Fehler behoben ist. Melden Sie sich in der Zwischenzeit für dieses Problem an und stimmen Sie ab, und fordern Sie sie auf, eine Dokumentation für Pipeline-Build-Job-Parameter hinzuzufügen.

https://issues.jenkins-ci.org/browse/JENKINS-27413

verlinkte von hier: http://jenkins-ci.361315.n4.nabble.com/pipeline-build-job-with-FileParameterValue-td4861199.html

Hier ist die Dokumentation für die verschiedenen Parametertypen (Link zur FileParameterValue)

http://javadoc.jenkins.io/hudson/model/FileParameterValue.html

0

versuchen, eine Instanz von FileParameterValue auf Parameter übergeben (es funktionierte für mich):

import hudson.model.* 

def param_file = new File("path/to/file") 

build job: 'otherproject', parameters: [new FileParameterValue('file_param_name', param_file, 'original_file_name')], wait: false 
Verwandte Themen