# Jenkins Shared-Library ## 讓Shared-Library裡面的print可以在Jenkins Console裡面看到 - 來源 [Stackovseflow](https://stackoverflow.com/questions/47320406/propagating-logs-in-shared-library-to-jenkins-job-console) [Gist](https://gist.github.com/mucst/35c3603aaf36becd2d6722696afb8e0a) ```bash . ├── resources ├── src │ └── org │ └── jenkins │ ├── JenkinsUtils.groovy │ └── Slack.groovy ``` - JenkinsUtils.groovy ```groovy= package org.jenkins class JenkinsUtils { static Closure<Void> log = { throw new RuntimeException("Logger not configured") } } ``` - Slack.groovy ```groovy= package org.jenkins import org.jenkins.JenkinsUtils class Slack { def sendMessage() { JenkinsUtils.log("..asdasdasdasd.") } } ``` - Jenkinsfile ```groovy= @Library("jenkins-lib@main") _ import org.jenkins.Slack import org.jenkins.JenkinsUtils @NonCPS def setupLogging() { JenkinsUtils.log = { String msg-> echo msg } } setupLogging() node () { stage("Verify") { def myvar = new Slack() myvar.sendMessage() } } ``` - output ``` groovy= [Pipeline] Start of Pipeline [Pipeline] node Running on Jenkins in /var/jenkins_home/workspace/test/backend/test [Pipeline] { [Pipeline] stage [Pipeline] { (Verify) [Pipeline] echo ..asdasdasdasd. [Pipeline] } [Pipeline] // stage [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline Finished: SUCCESS ``` 這寫法是在JenkinsUtils.groovy先定義,instantiate JenkinsUtils.log的話就會回傳錯誤,而instantiate的部分是在jenkinsfile裡面的
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up