Bird
Raised Fist0
Jenkinsdevops~10 mins

External artifact repositories (Nexus, Artifactory) in Jenkins - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - External artifact repositories (Nexus, Artifactory)
Build Project
↓
Package Artifact
↓
Upload Artifact to Repository
↓
Artifact Stored in Nexus/Artifactory
↓
Other Jobs Download Artifact
↓
Deploy or Use Artifact
This flow shows how Jenkins builds a project, packages it, uploads the artifact to an external repository like Nexus or Artifactory, and then other jobs can download and use it.
Execution Sample
Jenkins
pipeline {
  agent any
  stages {
    stage('Build') {
      steps {
        sh 'mvn clean package'
      }
    }
    stage('Publish') {
      steps {
        nexusArtifactUploader artifacts: [[artifactId: 'app', file: 'target/app.jar', type: 'jar']],
          credentialsId: 'nexus-creds',
          groupId: 'com.example',
          nexusUrl: 'http://nexus.example.com',
          repository: 'maven-releases',
          version: '1.0.0'
      }
    }
  }
}
This Jenkins pipeline builds a Maven project and uploads the resulting jar artifact to a Nexus repository.
Process Table
StepActionCommand/PluginResultNotes
1Build projectsh 'mvn clean package'target/app.jar createdMaven compiles and packages the app
2Prepare artifact infoDefine artifactId, file, typeArtifact details readyNeeded for upload plugin
3Upload artifactnexusArtifactUploader pluginArtifact uploaded to NexusStored in 'maven-releases' repo
4Verify uploadCheck Nexus UI or APIArtifact visible in repositoryArtifact ready for other jobs
5Download artifactOther Jenkins jobs use 'mvn dependency:get' or curlArtifact retrievedUsed for deployment or testing
6EndN/AProcess completeArtifact lifecycle finished
💡 All steps complete; artifact successfully stored and ready for use
Status Tracker
VariableStartAfter BuildAfter UploadFinal
artifactFilenulltarget/app.jartarget/app.jartarget/app.jar
artifactIdnullappappapp
versionnull1.0.01.0.01.0.0
uploadStatusnot startednot startedsuccesssuccess
Key Moments - 3 Insights
Why does the artifact file path need to be exact in the upload step?
Because the upload plugin uses the file path to find the artifact. If the path is wrong, the upload fails. See execution_table step 3 where 'target/app.jar' is specified.
What happens if the credentials for Nexus are incorrect?
The upload will fail with an authentication error. The pipeline will stop at step 3 in the execution_table because it cannot connect to Nexus.
How do other Jenkins jobs get the artifact after upload?
They download it from Nexus using tools like Maven or curl, as shown in step 5 of the execution_table.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the artifact file name after the build step?
Aapp.jar
Btarget/app.jar
Capp-1.0.0.jar
Dartifact.jar
💡 Hint
Check the 'Result' column in step 1 of the execution_table.
At which step does the artifact become available in the Nexus repository?
AStep 4
BStep 2
CStep 3
DStep 5
💡 Hint
Look for the step where the artifact is confirmed visible in the repository.
If the 'version' variable changed to '1.0.1', what would change in the execution_table?
AThe artifact file path would change
BThe upload step would fail
CThe version in the upload details would be '1.0.1'
DNo change at all
💡 Hint
Check the 'version' variable in variable_tracker and how it is used in the upload step.
Concept Snapshot
External artifact repositories store build outputs for reuse.
Jenkins builds and packages artifacts, then uploads them using plugins.
Artifacts are stored with groupId, artifactId, version, and repository info.
Other jobs download artifacts from Nexus or Artifactory for deployment.
Correct file paths and credentials are essential for upload success.
Full Transcript
This visual execution shows how Jenkins interacts with external artifact repositories like Nexus or Artifactory. First, Jenkins builds the project and creates an artifact file, such as a jar. Then it prepares artifact details including artifactId and version. Using a plugin like nexusArtifactUploader, Jenkins uploads the artifact to the repository. After upload, the artifact is visible and stored in Nexus. Other Jenkins jobs can then download this artifact for deployment or testing. Variables like artifactFile and version track the artifact state. Key points include ensuring the file path is correct and credentials are valid. The execution table traces each step from build to upload and verification, helping beginners see the process clearly.

Practice

(1/5)
1. What is the main purpose of using external artifact repositories like Nexus or Artifactory in Jenkins pipelines?
easy
A. To monitor Jenkins job execution times
B. To run Jenkins jobs faster by caching source code
C. To replace Jenkins as a build server
D. To store and share build artifacts for reuse in other projects

Solution

  1. Step 1: Understand artifact repositories role

    Artifact repositories store build outputs like binaries or libraries for reuse.
  2. Step 2: Connect to Jenkins pipeline usage

    Jenkins uploads artifacts to these repositories to share with other projects or teams.
  3. Final Answer:

    To store and share build artifacts for reuse in other projects -> Option D
  4. Quick Check:

    Artifact repositories = store and share artifacts [OK]
Hint: Artifact repos store build outputs for sharing [OK]
Common Mistakes:
  • Confusing artifact repos with build servers
  • Thinking they speed up job execution directly
  • Assuming they monitor Jenkins jobs
2. Which Jenkins plugin is commonly used to upload artifacts to a Nexus repository?
easy
A. Nexus Artifact Uploader
B. Git Plugin
C. Docker Pipeline
D. Slack Notification

Solution

  1. Step 1: Identify plugins for artifact upload

    The Nexus Artifact Uploader plugin is designed to upload build artifacts to Nexus repositories.
  2. Step 2: Exclude unrelated plugins

    Git Plugin manages source code, Docker Pipeline manages containers, Slack Notification sends messages.
  3. Final Answer:

    Nexus Artifact Uploader -> Option A
  4. Quick Check:

    Nexus upload plugin = Nexus Artifact Uploader [OK]
Hint: Nexus upload uses Nexus Artifact Uploader plugin [OK]
Common Mistakes:
  • Choosing Git Plugin for artifact upload
  • Confusing Docker Pipeline with artifact upload
  • Selecting notification plugins by mistake
3. Given this Jenkins pipeline snippet using Artifactory plugin:
artifactoryServer.upload spec: '''{
  "files": [
    {"pattern": "build/libs/*.jar", "target": "libs-release-local/"}
  ]
}'''

What does this code do?
medium
A. Uploads all JAR files from build/libs to libs-release-local repository
B. Downloads JAR files from libs-release-local to build/libs
C. Deletes JAR files from build/libs directory
D. Builds JAR files inside the Jenkins workspace

Solution

  1. Step 1: Analyze the upload spec JSON

    The spec says to upload files matching build/libs/*.jar to target libs-release-local/ repository.
  2. Step 2: Understand Artifactory plugin upload method

    upload method sends files from Jenkins workspace to the external repository location.
  3. Final Answer:

    Uploads all JAR files from build/libs to libs-release-local repository -> Option A
  4. Quick Check:

    upload spec = upload files to repo [OK]
Hint: Upload spec means send files to repo path [OK]
Common Mistakes:
  • Confusing upload with download
  • Thinking it deletes files
  • Assuming it builds artifacts
4. You configured Jenkins to upload artifacts to Nexus but the upload fails with authentication error. What is the most likely cause?
medium
A. Build artifacts are missing in workspace
B. Incorrect repository URL configured in Jenkins
C. Missing or wrong credentials for Nexus repository in Jenkins
D. Jenkins server is offline

Solution

  1. Step 1: Understand authentication error meaning

    Authentication errors usually mean Jenkins cannot log in to Nexus due to bad credentials.
  2. Step 2: Check common causes

    Incorrect URL causes connection errors, missing artifacts cause upload failure but not auth error, offline server causes connection failure.
  3. Final Answer:

    Missing or wrong credentials for Nexus repository in Jenkins -> Option C
  4. Quick Check:

    Auth error = bad credentials [OK]
Hint: Auth errors mean check credentials first [OK]
Common Mistakes:
  • Assuming URL is always the cause
  • Ignoring credentials setup
  • Confusing missing files with auth errors
5. You want to configure a Jenkins pipeline to upload a Docker image to Artifactory and also store the build logs as an artifact. Which two configurations are essential?
hard
A. Configure Git repository URL; use 'docker build' only
B. Configure Artifactory Docker registry URL and credentials; use 'archiveArtifacts' step for logs
C. Use 'sh' step to upload logs manually; no credentials needed
D. Configure Jenkins email notifications; use 'stash' for Docker images

Solution

  1. Step 1: Identify Docker image upload requirements

    Uploading Docker images to Artifactory requires setting the Docker registry URL and credentials in Jenkins.
  2. Step 2: Identify artifact storage for logs

    Jenkins 'archiveArtifacts' step stores build logs or files as artifacts for later access.
  3. Final Answer:

    Configure Artifactory Docker registry URL and credentials; use 'archiveArtifacts' step for logs -> Option B
  4. Quick Check:

    Docker upload + archive logs = config URL/creds + archiveArtifacts [OK]
Hint: Docker upload needs registry + creds; logs need archiveArtifacts [OK]
Common Mistakes:
  • Confusing Git URL with Docker registry URL
  • Skipping credentials for Artifactory
  • Using stash instead of archiveArtifacts for logs
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