2017-08-17 57 views
1

Jenkinsでスクリプト化されたパイプラインを使用する形式で、タイムスタンプを少し作成するのに苦労しています。ここではパイプラインからの私のコードは次のとおりです。Jenkinsfileでタイムスタンプを作成する

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 

私はジェンキンスを経由して実行すると、私は次を得る:私はオンライン異なるフィールドで同様の問題の言及を見てきました

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) 

が、追加の回避策それはscriptapproval.xml(そしてJenkinsを再起動する)は動作していないようです。

誰でも、私がやろうとしているのと同様の形式でタイムスタンプを生成する方法がありますか?

+0

Manage JenkinsのIn-process Script Approvalページを確認しましたか?最後に、scriptapproval.xmlを作成するのと同じことが行われますが、何を承認するべきかについての情報があります。 – babsaai

+0

@babsaaiはい。私はそれをチェックした。承認するには何もありません。 –

答えて

2

私はその周りに道を見つけました。私はフィールドtimeに直接アクセスしていました。私が電話をcal.timeからcal.getTime()に変更した場合、Jenkinsの方がはるかに優れています。私はそれを1つのライナーに統合しましたが、機能は同じです:

def timeStamp = Calendar.getInstance().getTime().format('YYYYMMdd-hhmmss',TimeZone.getTimeZone('CST')) 

関連する問題