81 lines
3.2 KiB
Groovy
81 lines
3.2 KiB
Groovy
pipeline {
|
|
agent any
|
|
tools {
|
|
maven 'Maven'
|
|
jdk 'Java JDK'
|
|
}
|
|
environment {
|
|
// This can be nexus3 or nexus2
|
|
NEXUS_VERSION = "nexus3"
|
|
// This can be http or https
|
|
NEXUS_PROTOCOL = "http"
|
|
// Where your Nexus is running
|
|
NEXUS_URL = "nexus.greinet.com"
|
|
// Repository where we will upload the artifact
|
|
NEXUS_REPOSITORY = "maven-greinet"
|
|
// Jenkins credential id to authenticate to Nexus OSS
|
|
NEXUS_CREDENTIAL_ID = "nexus_jenkins"
|
|
}
|
|
stages {
|
|
stage ('Initialize') {
|
|
steps {
|
|
sh '''
|
|
echo "PATH = ${PATH}"
|
|
echo "M2_HOME = ${M2_HOME}"
|
|
'''
|
|
}
|
|
}
|
|
|
|
stage ('Build') {
|
|
steps {
|
|
sh 'mvn -Dmaven.test.failure.ignore=true install'
|
|
}
|
|
}
|
|
stage("publish to nexus") {
|
|
steps {
|
|
script {
|
|
// Read POM xml file using 'readMavenPom' step , this step 'readMavenPom' is included in: https://plugins.jenkins.io/pipeline-utility-steps
|
|
pom = readMavenPom file: "pom.xml";
|
|
// Find built artifact under target folder
|
|
filesByGlob = findFiles(glob: "target/*.${pom.packaging}");
|
|
// Print some info from the artifact found
|
|
echo "${filesByGlob[0].name} ${filesByGlob[0].path} ${filesByGlob[0].directory} ${filesByGlob[0].length} ${filesByGlob[0].lastModified}"
|
|
// Extract the path from the File found
|
|
artifactPath = filesByGlob[0].path;
|
|
// Assign to a boolean response verifying If the artifact name exists
|
|
artifactExists = fileExists artifactPath;
|
|
|
|
if(artifactExists) {
|
|
echo "*** File: ${artifactPath}, group: ${pom.groupId}, packaging: ${pom.packaging}, version ${pom.version}";
|
|
|
|
nexusArtifactUploader(
|
|
nexusVersion: NEXUS_VERSION,
|
|
protocol: NEXUS_PROTOCOL,
|
|
nexusUrl: NEXUS_URL,
|
|
groupId: pom.groupId,
|
|
version: pom.version,
|
|
repository: NEXUS_REPOSITORY,
|
|
credentialsId: NEXUS_CREDENTIAL_ID,
|
|
artifacts: [
|
|
// Artifact generated such as .jar, .ear and .war files.
|
|
[artifactId: pom.artifactId,
|
|
classifier: '',
|
|
file: artifactPath,
|
|
type: pom.packaging],
|
|
|
|
// Lets upload the pom.xml file for additional information for Transitive dependencies
|
|
[artifactId: pom.artifactId,
|
|
classifier: '',
|
|
file: "pom.xml",
|
|
type: "pom"]
|
|
]
|
|
);
|
|
|
|
} else {
|
|
error "*** File: ${artifactPath}, could not be found";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |