在Jenkinsfile中创建时间戳

All*_*her 3 jenkins jenkins-pipeline

我正在努力创建一个格式的时间戳,我希望在Jenkins中使用脚本管道.这是管道中的代码:

def cal = Calendar.instance
def dateFormat = 'YYYYMMDD-hhmmss'
def timeZone = TimeZone.getTimeZone('CST')
def timeStamp = cal.time?.format(dateFormat,timeZone)?
println "Timestamp is: ${timeStamp}"
env.BUILD_TIMESTAMP = timeStamp
Run Code Online (Sandbox Code Playgroud)

当我通过Jenkins运行时,我得到以下内容:

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: unclassified field java.util.GregorianCalendar time?
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.unclassifiedField(SandboxInterceptor.java:387)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:371)
Run Code Online (Sandbox Code Playgroud)

我已经看到在线提到不同领域的类似问题,但是将其添加到scriptapproval.xml(并重新启动Jenkins)的解决方法似乎并不起作用.

任何人都有一种生成时间戳的方法,其格式与我正在尝试的格式类似?

All*_*her 10

我找到了解决方法.我time直接访问了这个领域.如果我改变从呼叫cal.timecal.getTime()詹金斯的表现好了很多.我将它整合成一个单行,但功能相同:

def timeStamp = Calendar.getInstance().getTime().format('YYYYMMdd-hhmmss',TimeZone.getTimeZone('CST'))
Run Code Online (Sandbox Code Playgroud)

感谢那些看过的人.

  • 需要任何依赖吗? (2认同)