我有一个Jenkin DSL作业。它用于Java构建。我陷入一个奇怪的问题。 jobname是DSL,我看到创建了一个名为DSL的工作区,但是当该作业运行时,它添加了另一个名为DSL @ 2的工作区。我无法从DSL工作区获取最终的jar文件的问题
pipeline
{
agent any
stages
{
stage('Build')
{
agent {
docker { image 'maven:latest'
args '-v /home/ubuntu/jenkins/jenkins_home/.m2:/root/.m2'
}
}
steps {
git branch: "${params.branch}", url: "git@github.org/repo.git"
sh 'mvn clean install -Dmaven.test.skip=true -Dfindbugs.skip=true'
sh "ls -la target/name.jar "
}
}
stage('Copy Artifects')
{
steps {
//print "$params.IP"
// sh '${params.IP}"
sh "ls -la && pwd "
sh "scp target/name.jar ubuntu@${params.IP}:/home/ubuntu/target/name.jar_2"
}
}
}
}
职位空缺
Compiling 19 source files to /var/jenkins_home/workspace/dsl@2/auth-client/target/classes
答案 0 :(得分:0)
DSL @ 2意味着您或者配置了一个并发作业,并且同时运行两个构建,或者您遇到了一个错误https://issues.jenkins-ci.org/browse/JENKINS-30231
要解决您的问题:
您正在用Maven映像创建的docker容器中构建 stage('Build')。
但是, stage('Copy Artifects')在该容器的外部运行
要解决此问题,您需要将 agent {} 移至管道{}级,如下所示:
pipeline
{
agent {
docker {
image 'maven:latest'
args '-v /home/ubuntu/jenkins/jenkins_home/.m2:/root/.m2'
}
}
stages
{
stage('Build')
{
steps {
git branch: "${params.branch}", url: "git@github.org/repo.git"
sh 'mvn clean install -Dmaven.test.skip=true -Dfindbugs.skip=true'
sh "ls -la target/name.jar "
}
}
stage('Copy Artifects')
{
steps {
sh "ls -la && pwd "
sh "scp target/name.jar ubuntu@${params.IP}:/home/ubuntu/target/name.jar_2"
}
}
}
}