В моем коде есть switch
(контекст: конвейерная библиотека Jenkins):
def installOptions(filePath) {
switch (filePath) {
case ~/.*\.pom/:
"-Dpackaging=pom -DpomFile=$filePath"
break
case ~/.*\.jar/:
'-Dpackaging=jar'
break
case ~/.*-exe-archive.zip/:
filePath = filePath.replace '-exe-archive.zip', '.pom'
"-Dpackaging=zip -DpomFile=$filePath"
break
default:
''
break
}
}
Значение filePath
: 'temp_downloads/merge/QA-9344/itextcore/java/main.pom'
Ожидаемое значение:
-Dpackaging=pom -DpomFile=temp_downloads/merge/QA-9344/itextcore/java/main.pom
Фактическое значение:
null
Когда я использую точно такой же switch
в «нормальном» Groovy, я получаю ожидаемый результат:
import org.codehaus.groovy.runtime.InvokerHelper
class InstallJavaBranchArtifacts extends Script {
static void main(String[] args) {
InvokerHelper.runScript(InstallJavaBranchArtifacts, args)
}
def run() {
println installOptions('temp_downloads/merge/QA-9344/itextcore/java/main.pom')
println installOptions('temp_downloads/merge/QA-9344/itextcore/java/barcodes.pom')
println installOptions('temp_downloads/merge/QA-9344/itextcore/java/itext7-barcodes-7.1.12-SNAPSHOT.jar')
}
def installOptions(filePath) {
switch (filePath) {
case ~/.*\.pom/:
"-Dpackaging=pom -DpomFile=$filePath"
break
case ~/.*\.jar/:
'-Dpackaging=jar'
break
case ~/.*-exe-archive.zip/:
filePath = filePath.replace '-exe-archive.zip', '.pom'
"-Dpackaging=zip -DpomFile=$filePath"
break
default:
''
break
}
}
}
тогда это мой вывод:
/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java ...
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/usr/share/java/groovy-2.4.17.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
-Dpackaging=pom -DpomFile=temp_downloads/merge/QA-9344/itextcore/java/main.pom
-Dpackaging=pom -DpomFile=temp_downloads/merge/QA-9344/itextcore/java/barcodes.pom
-Dpackaging=jar
Process finished with exit code 0
Что является (кроме нелегального отражения доступа mumbo jumbo) ожидаемым выводом.
Итак, что мне нужно сделать, чтобы * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *