Jenkins Maven构建->变更目录 [英] Jenkins Maven Build -> Change Directory

查看:122
本文介绍了Jenkins Maven构建->变更目录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看过一些帖子,但找不到解决我问题的方法。在詹金斯,我有一个配置了maven项目的管道。我可以在本地运行测试而不会出现问题,并且测试结果在目标文件夹中生成。问题在于,由于jenkins中的文件夹结构不同,因此测试未通过Jenkins Build Process。在错误消息中,我看到它没有使用正确的路径:

I have looked trough some posts, but couldnt find a solution to my problem. In Jenkins I have a pipeline configured with an maven project. I can run the tests locally without a problem and the test result are generated in the target folder. The problem is that the tests do not pass the Jenkins Build Process as the folder structure is different in jenkins. In the error message I see that it does not use the correct path:

[ERROR] Command was /bin/sh -c cd /var/lib/jenkins/jobs/test/workspace

路径应类似于

/var/lib/docker/volumes/jenkins-data_var_lib_jenkins`/_data/jobs/test/workspace#

在运行Jenkins的服务器上,lib文件夹下没有jenkins文件夹。我进行了搜索,发现jenkins文件夹在lib / docker / volumes下面。但是在构建过程中,控制台会以某种方式提示

On the server where Jenkins is running there is no jenkins folder under the lib folder. I made a search and found out that the jenkins folder is below lib/docker/volumes. But somehow while the build process the console says

Running on master in /var/lib/jenkins/jobs/test/workspace

在哪里可以进行此更改?
非常感谢您的帮助。我的Jenkinsfile是从我正在使用的Framework生成的,看起来像这样:

Where can I make this changes? Any help is much appreciated. My Jenkinsfile was generated from the Framework I am using and looks like this:

#!/usr/bin/env groovy

node {

    stage('checkout') {
        checkout scm
    }

    stage('check java') {
        sh "java -version"
    }

    stage('clean') {
        sh "chmod +x mvnw"
        sh "./mvnw clean"
    }

    stage('install tools') {
        sh "./mvnw com.github.eirslett:frontend-maven-plugin:install-node-and-yarn -DnodeVersion=v6.11.3 -DyarnVersion=v1.1.0"
    }

    stage('yarn install') {
        sh "./mvnw com.github.eirslett:frontend-maven-plugin:yarn"
    }


    stage('backend tests') {
        try {
            sh "./mvnw test"
        } catch(err) {
            throw err
        } finally {
            junit '**/target/surefire-reports/TEST-*.xml'
        }
    }

    stage('frontend tests') {
        try {
            sh "./mvnw com.github.eirslett:frontend-maven-plugin:yarn -Dfrontend.yarn.arguments=test"
        } catch(err) {
            throw err
        } finally {
            junit '** /target/test-results/karma/TESTS-*.xml'
        }
    } 

    stage('packaging') {
        sh "./mvnw package -Pprod -DskipTests"
        archiveArtifacts artifacts: '**/target/*.war', fingerprint: true
    }

}

构建过程中的错误报告如下所示(如我上面所述,在var / lib /下没有jenkins文件夹。我认为两个不同的工作区存在问题,但是我该如何适应呢?

The Error Report in the build process is the following (like I said above, there is no jenkins folder under var/lib/. I think there is a problem with two different workspaces, but how could I adapt this?

     Started by an SCM change
        Obtained Jenkinsfile from git https://github.com/....git
        [Pipeline] node
        Running on master in /var/lib/jenkins/jobs/test/workspace
        [Pipeline] {
        [Pipeline] stage
        [Pipeline] { (checkout)
        [Pipeline] checkout
         > git rev-parse --is-inside-work-tree # timeout=10
        Fetching changes from the remote Git repository
         > git config remote.origin.url https://github.com/.....git # timeout=10
        Fetching upstream changes from https://github.com/.......git
         > git --version # timeout=10
        using GIT_ASKPASS to set credentials 
         > git fetch --tags --progress https://github.com/........git +refs/heads/*:refs/remotes/origin/*
         > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
         > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
        Checking out Revision .....
    (refs/remotes/origin/master)
         > git config core.sparsecheckout # timeout=10
         > git checkout -f ........
        Commit message: "Merge branch 'master' of https://github.com/......"
         > git rev-list ....... # timeout=10
        [Pipeline] }
        [Pipeline] // stage
        [Pipeline] stage
        [Pipeline] { (check java)
        [Pipeline] sh
        [workspace] Running shell script
        + java -version
        openjdk version "1.8.0_112"
        OpenJDK Runtime Environment (build 1.8.0_112-b15)
        OpenJDK 64-Bit Server VM (build 25.112-b15, mixed mode)
        [Pipeline] }
        [Pipeline] // stage
        [Pipeline] stage
        [Pipeline] { (clean)
        [Pipeline] sh
        [workspace] Running shell script
        + chmod +x mvnw
        [Pipeline] sh
        [workspace] Running shell script
        + ./mvnw clean
        [INFO] Scanning for projects...
       [INFO] ------------------------------------------------------------------------
        [INFO] Building Test 0.0.1-SNAPSHOT
        [INFO] ------------------------------------------------------------------------
        [INFO] 
        [INFO] --- maven-clean-plugin:2.6.1:clean (default-clean) @ test---
        [INFO] Deleting /var/lib/jenkins/jobs/test/workspace/target
        [INFO] ------------------------------------------------------------------------
        [INFO] BUILD SUCCESS
        [INFO] ------------------------------------------------------------------------
        [INFO] Total time: 1.181 s
        [INFO] Finished at: 2017-10-18T11:32:15Z
        [INFO] Final Memory: 12M/106M
        [INFO] ------------------------------------------------------------------------
        [Pipeline] }
        [Pipeline] // stage
        [Pipeline] stage
        [Pipeline] { (install tools)
        [Pipeline] sh
        [workspace] Running shell script
        + ./mvnw com.github.eirslett:frontend-maven-plugin:install-node-and-yarn -DnodeVersion=v6.11.3 -DyarnVersion=v1.1.0
        [INFO] Scanning for projects...
        [INFO] 
        [INFO] ------------------------------------------------------------------------
        [INFO] Building Test 0.0.1-SNAPSHOT
        [INFO] ------------------------------------------------------------------------
        [INFO] 
        [INFO] --- frontend-maven-plugin:1.6:install-node-and-yarn (default-cli) @ test---
        [INFO] Node v6.11.3 is already installed.
        [INFO] Yarn 1.1.0 is already installed.
        [INFO] ------------------------------------------------------------------------
        [INFO] BUILD SUCCESS
        [INFO] ------------------------------------------------------------------------
        [INFO] Total time: 3.126 s
        [INFO] Finished at: 2017-10-18T11:32:20Z
        [INFO] Final Memory: 14M/106M
        [INFO] ------------------------------------------------------------------------
        [Pipeline] }
        [Pipeline] // stage
        [Pipeline] stage
        [Pipeline] { (yarn install)
        [Pipeline] sh
        [workspace] Running shell script
        + ./mvnw com.github.eirslett:frontend-maven-plugin:yarn
        [INFO] Scanning for projects...
------------------------------------------------------------------------
        [INFO] Building Test 0.0.1-SNAPSHOT
        [INFO] ------------------------------------------------------------------------
        [INFO] 
        [INFO] --- frontend-maven-plugin:1.6:yarn (default-cli) @ test---
        [INFO] Running 'yarn ' in /var/lib/jenkins/jobs/test/workspace
        [INFO] yarn install v1.1.0
        [INFO] [1/5] Validating package.json...
        [INFO] [2/5] Resolving packages...
        [INFO] success Already up-to-date.
        [INFO] Done in 2.39s.
        [INFO] ------------------------------------------------------------------------
        [INFO] BUILD SUCCESS
        [INFO] ------------------------------------------------------------------------
        [INFO] Total time: 4.316 s
        [INFO] Finished at: 2017-10-18T11:32:27Z
        [INFO] Final Memory: 12M/106M
        [INFO] ------------------------------------------------------------------------
        [Pipeline] }
        [Pipeline] // stage
        [Pipeline] stage
        [Pipeline] { (backend tests)
        [Pipeline] sh
        [workspace] Running shell script
        + ./mvnw test
        [INFO] Scanning for projects...
      ------------------------------------------------------------------------
        [INFO] Building Test 0.0.1-SNAPSHOT
        [INFO] ------------------------------------------------------------------------
        [INFO] 
        [INFO] --- maven-resources-plugin:3.0.1:copy-resources (default-resources) @ test---
        [INFO] Using 'UTF-8' encoding to copy filtered resources.
        [INFO] Copying 19 resources
        [INFO] Copying 11 resources
        [INFO] 
        [INFO] --- maven-resources-plugin:3.0.1:resources (default-resources) @ test---
        [INFO] Using 'UTF-8' encoding to copy filtered resources.
        [INFO] Copying 19 resources
        [INFO] Copying 11 resources
        [INFO] 
        [INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-versions) @ test---
        [INFO] 
        [INFO] --- maven-resources-plugin:3.0.1:copy-resources (docker-resources) @ test---
        [INFO] Using 'UTF-8' encoding to copy filtered resources.
        [INFO] Copying 2 resources
        [INFO] 
        [INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (pre-unit-tests) @ test---
        [INFO] argLine set to -javaagent:/var/lib/jenkins/.m2/repository/org/jacoco/org.jacoco.agent/0.7.9/org.jacoco.agent-0.7.9-runtime.jar=destfile=/var/lib/jenkins/jobs/test/workspace/target/test-results/coverage/jacoco/jacoco.exec -Djava.security.egd=file:/dev/./urandom -Xmx256m
        [INFO] 
        [INFO] --- maven-compiler-plugin:3.6.0:compile (default-compile) @ test---
        [INFO] Changes detected - recompiling the module!
        [INFO] Compiling 94 source files to /var/lib/jenkins/jobs/test/workspace/target/classes
        [INFO] 
        [INFO] --- maven-resources-plugin:3.0.1:testResources (default-testResources) @ test---
        [INFO] Using 'UTF-8' encoding to copy filtered resources.
        [INFO] Copying 4 resources
        [INFO] 
        [INFO] --- maven-compiler-plugin:3.6.0:testCompile (default-testCompile) @ test---
        [INFO] Changes detected - recompiling the module!
        [INFO] Compiling 22 source files to /var/lib/jenkins/jobs/test/workspace/target/test-classes
        [INFO] 
        [INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ test---
        [INFO] Surefire report directory: /var/lib/jenkins/jobs/test/workspace/target/surefire-reports

        -------------------------------------------------------
         T E S T S
        -------------------------------------------------------
        Error: Invalid or corrupt jarfile /var/lib/jenkins/jobs/test/workspace/target/surefire/surefirebooter78063794178.....jar

        Results :

        Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

        [INFO] ------------------------------------------------------------------------
        [INFO] BUILD FAILURE
        [INFO] ------------------------------------------------------------------------
        [INFO] Total time: 13.856 s
        [INFO] Finished at: 2017-10-18T11:32:43Z
        [INFO] Final Memory: 49M/334M
        [INFO] ------------------------------------------------------------------------
        [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project test: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
        [ERROR] Command was /bin/sh -c cd /var/lib/jenkins/jobs/test/workspace && /usr/lib/jvm/java-8-openjdk/jre/bin/java -javaagent:/var/lib/jenkins/.m2/repository/org/jacoco/org.jacoco.agent/0.7.9/org.jacoco.agent-0.7.9-runtime.jar=destfile=/var/lib/jenkins/jobs/test/workspace/target/test-results/coverage/jacoco/jacoco.exec -Djava.security.egd=file:/dev/./urandom -Xmx256m -jar /var/lib/jenkins/jobs/test/workspace/target/surefire/surefirebooter7806379417818082153.jar /var/lib/jenkins/jobs/test/workspace/target/surefire/surefire6244578096780428228tmp /var/lib/jenkins/jobs/test/workspace/target/surefire/surefire_09182258098509539166tmp
        [ERROR] -> [Help 1]
        [ERROR] 
        [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
        [ERROR] Re-run Maven using the -X switch to enable full debug logging.
        [ERROR] 
        [ERROR] For more information about the errors and possible solutions, please read the following articles:
        [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
        [Pipeline] junit
        Recording test results
        [Pipeline] }
        [Pipeline] // stage
        [Pipeline] }
        [Pipeline] // node
        [Pipeline] End of Pipeline
        ERROR: No test report files were found. Configuration error?
        Finished: FAILURE


推荐答案

很难告诉而不看到您的工作,但您可以只引用$ WORKSPACE变量来获得工作区的顶部。

Hard to tell without seeing your job, but you can probably just reference the $WORKSPACE variable to get the top of your workspace.

这篇关于Jenkins Maven构建->变更目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆