Bird
Raised Fist0
Jenkinsdevops~5 mins

@Library annotation in Jenkins - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the @Library annotation in Jenkins pipelines?
The @Library annotation is used to load shared libraries into a Jenkins pipeline script, allowing reuse of common code across multiple pipelines.
Click to reveal answer
beginner
How do you specify a shared library named utils using the @Library annotation?
You write @Library('utils') _ at the top of your Jenkins pipeline script to load the utils shared library.
Click to reveal answer
intermediate
What does the underscore _ mean after the @Library annotation?
The underscore <code>_</code> tells Jenkins to import the library into the script's namespace so you can use its functions and classes directly.
Click to reveal answer
intermediate
Can you load multiple shared libraries with @Library? How?
Yes, you can load multiple libraries by listing them separated by commas inside the annotation, like @Library(['lib1', 'lib2']) _.
Click to reveal answer
beginner
What happens if a shared library is not configured in Jenkins but you try to load it with @Library?
Jenkins will fail the pipeline with an error saying the library is not found because it must be configured in Jenkins global settings before use.
Click to reveal answer
What is the correct way to load a shared library named 'commonLib' in a Jenkins pipeline?
AloadLibrary('commonLib')
B@Library('commonLib') _
Cimport 'commonLib'
DuseLibrary('commonLib')
What does the underscore _ do after the @Library annotation?
AIt imports the library into the script namespace
BIt comments out the annotation
CIt runs the library code immediately
DIt declares a variable
How do you load multiple shared libraries in one annotation?
Aimport ['libA', 'libB']
B@Library('libA') @Library('libB')
CloadLibraries('libA', 'libB')
D@Library(['libA', 'libB']) _
Where must shared libraries be configured before using @Library?
AIn Jenkins global configuration under Shared Libraries
BIn the pipeline script itself
CIn the Jenkinsfile repository
DIn the Jenkins agent settings
What happens if you try to load a non-existent shared library with @Library?
AJenkins creates a new empty library
BPipeline ignores the library and continues
CPipeline fails with a library not found error
DPipeline runs but skips library functions
Explain how the @Library annotation works in Jenkins pipelines and why it is useful.
Think about how you share common code across projects.
You got /4 concepts.
    Describe the steps to use multiple shared libraries in a Jenkins pipeline using the @Library annotation.
    How do you load more than one library at once?
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the @Library annotation in Jenkins pipelines?
      easy
      A. To specify the pipeline agent type
      B. To load shared code libraries for reuse in pipelines
      C. To define environment variables for the pipeline
      D. To trigger downstream jobs automatically

      Solution

      1. Step 1: Understand the role of @Library

        The @Library annotation is used to load shared libraries in Jenkins pipelines.
      2. Step 2: Identify its main purpose

        Loading shared libraries allows reuse of code and better organization of pipeline scripts.
      3. Final Answer:

        To load shared code libraries for reuse in pipelines -> Option B
      4. Quick Check:

        @Library loads shared libraries = C [OK]
      Hint: Remember: @Library loads reusable code libraries [OK]
      Common Mistakes:
      • Confusing @Library with environment variable setup
      • Thinking it triggers jobs instead of loading code
      • Using it to specify pipeline agents
      2. Which of the following is the correct syntax to load a shared library named 'utils' in a Jenkinsfile?
      easy
      A. @Library('utils') _
      B. @Library utils _
      C. library('utils') _
      D. @LoadLibrary('utils') _

      Solution

      1. Step 1: Recall the correct syntax for @Library

        The correct syntax uses parentheses and quotes around the library name, followed by an underscore.
      2. Step 2: Match the syntax to options

        @Library('utils') _ matches @Library('utils') _, which is correct.
      3. Final Answer:

        @Library('utils') _ -> Option A
      4. Quick Check:

        Correct syntax uses parentheses and underscore = A [OK]
      Hint: Use parentheses and underscore after @Library [OK]
      Common Mistakes:
      • Omitting parentheses or quotes
      • Using wrong annotation like @LoadLibrary
      • Placing underscore before the annotation
      3. Given this Jenkinsfile snippet:
      @Library('mathLib') _
      pipeline {
        agent any
        stages {
          stage('Calculate') {
            steps {
              script {
                echo mathLib.add(2, 3).toString()
              }
            }
          }
        }
      }

      What will be the output if the shared library 'mathLib' has a method add(a, b) that returns the sum of two numbers?
      medium
      A. 5
      B. mathLib.add(2, 3)
      C. Error: method not found
      D. 23

      Solution

      1. Step 1: Understand the method call in the script block

        The code calls mathLib.add(2, 3) which returns the sum of 2 and 3.
      2. Step 2: Convert the result to string and echo

        The result 5 is converted to string and printed by echo.
      3. Final Answer:

        5 -> Option A
      4. Quick Check:

        Sum of 2 and 3 = 5 [OK]
      Hint: Method returns sum; echo prints '5' as string [OK]
      Common Mistakes:
      • Expecting the method name printed instead of result
      • Confusing concatenation with addition
      • Assuming method is missing causing error
      4. You wrote this at the top of your Jenkinsfile:
      @Library('commonLib')
      pipeline {
        agent any
        stages {
          stage('Test') {
            steps {
              script {
                commonLib.doSomething()
              }
            }
          }
        }
      }

      But Jenkins throws an error saying Missing required underscore after @Library annotation. How do you fix it?
      medium
      A. Change @Library to @LoadLibrary
      B. Remove the parentheses from @Library
      C. Place the underscore before the annotation like _ @Library('commonLib')
      D. Add an underscore _ immediately after the annotation like @Library('commonLib') _

      Solution

      1. Step 1: Identify the syntax error from the message

        The error says the underscore is missing after @Library, which is required syntax.
      2. Step 2: Correct the syntax by adding underscore

        Add an underscore immediately after the annotation: @Library('commonLib') _.
      3. Final Answer:

        Add an underscore _ immediately after the annotation like @Library('commonLib') _ -> Option D
      4. Quick Check:

        Underscore after @Library fixes syntax [OK]
      Hint: Always put underscore right after @Library(...) [OK]
      Common Mistakes:
      • Omitting the underscore
      • Placing underscore before annotation
      • Changing annotation name incorrectly
      5. You want to load two shared libraries named 'utils' and 'helpers' in your Jenkinsfile. Which is the correct way to do this using the @Library annotation?
      hard
      A. @Library('utils_helpers') _
      B. @Library('utils') _ @Library('helpers') _
      C. @Library(['utils', 'helpers']) _
      D. @Library('utils,helpers') _

      Solution

      1. Step 1: Recall how to load multiple libraries

        Multiple libraries can be loaded by passing a list of names inside @Library annotation.
      2. Step 2: Identify correct syntax for multiple libraries

        The correct syntax is @Library(['utils', 'helpers']) _ which loads both libraries at once.
      3. Final Answer:

        @Library(['utils', 'helpers']) _ -> Option C
      4. Quick Check:

        Use list inside @Library for multiple libs [OK]
      Hint: Use list syntax inside @Library to load many libs [OK]
      Common Mistakes:
      • Trying to use multiple @Library annotations
      • Passing comma-separated string instead of list
      • Combining names into one string without list
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard