1

我正在尝试为我的 Maven 项目使用 Jenkins 主从架构。我在 Windows 机器上有 Jenkins master,在 Linux 机器上有 slave。现在的问题是,当我运行我的 Jenkins 脚本时,它给了我一个错误,比如无法初始化 git 存储库,因为 Jenkins 正试图在 Linux 从机上执行 git.exe。谁能让我知道我该如何解决?

以下是我的 Jenkins 管道脚本和错误日志

node ('lx-dotoolsd1')
{
    stage 'Checkout'
    git branch: 'master', credentialsId: 'ee44e971-4cce-4e59-95b6-
    da222007775b', url: ' http://o-heena@bitbucket:7990/scm/phoen/audit-
    confirmation.git'
    stage 'Test'
    def pom = readMavenPom file: 'pom.xml'
    print "Build: " + pom.version
    env.POM_VERSION = pom.version
    //batch 'mvn clean compile install'
    //junit '**/target/surefire-reports/TEST-*.xml'
    currentBuild.description = "v${pom.version} (${env.branch})"
}

错误如下

Started by user Patel,Heena
[Pipeline] node
Running on lx-dotoolsd1 in /var/jenkins/workspace/pipelineTest
[Pipeline] {
[Pipeline] stage (Checkout)
Entering stage Checkout
Proceeding
[Pipeline] git
Cloning the remote Git repository
Cloning repository http://o-heena@bitbucket:7990/scm/phoen/audit-confirmation.git
> git.exe init /var/jenkins/workspace/pipelineTest # timeout=10
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Could not init /var/jenkins/workspace/pipelineTest
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$5.execute(CliGitAPIImpl.java:656)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:463)
at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:152)
at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:145)
at hudson.remoting.UserRequest.perform(UserRequest.java:152)
at hudson.remoting.UserRequest.perform(UserRequest.java:50)
at hudson.remoting.Request$2.run(Request.java:332)
4

1 回答 1

2

Linux Node当您从全局工具配置访问Git路径时,会出现此问题。

因为,您的主机是Git路径指向的 Windows Git.exe

我认为你还没有Git为你的从机设置路径。

转到http://<JENKINS_URL>/computer/<NODE_NAME>/configure,这将带您进入您的从属配置页面。在那里Node Properties检查Tool Location并从中List of Tool Location选择Git并添加安装在从机中的 Git 的 GIT_HOME 路径。

在此处输入图像描述

于 2017-08-30T10:28:17.400 回答