Gitlab CI / CD运行器:找不到mvn命令

时间:2018-09-27 11:19:21

标签: maven gitlab gitlab-ci gitlab-ci-runner

Maven 已很好地安装在我的 gitlab-runner 服务器上。当直接在我的仓库上执行mvn clean时,它可以工作,当使用Gitlab UI运行管道时出现此错误:

  

bash:第60行:mvn:找不到命令

     

错误:作业失败:退出状态1

我注意到我试图通过在 .gitlab-ci.yml 文件中添加before_script部分来解决此问题:

before_script:    
- export MAVEN_HOME=/usr/local/apache-maven

我还添加了一行:

environment = ["MAVEN_HOME=/usr/local/apache-maven"]

config.toml 文件上。

问题仍然存在,我的执行者是: shell

任何建议!

5 个答案:

答案 0 :(得分:1)

我设法使用以下解决方法解决了该问题:

  script:
    - $MAVEN_HOME/bin/mvn clean

答案 1 :(得分:1)

对于遇到类似问题的任何人,重新启动 gitlab 运行程序“.\gitlab-runner.exe restart”可能是个好主意。尤其是在摆弄环境变量之后。

答案 2 :(得分:0)

将Maven添加到PATH:

$ export M2_HOME=/usr/local/apache-maven/apache-maven-3.3.9

$ export M2=$M2_HOME/bin

$ export PATH=$M2:$PATH 

您可以在$HOME/.bashrc

中包含这些命令

答案 3 :(得分:0)

只需添加maven docker映像,然后将以下行添加为第一行:

image: maven:latest or image: maven:3-jdk-10 or image: maven:3-jdk-9

引用:https://docs.gitlab.com/ee/ci/examples/artifactory_and_gitlab/

答案 4 :(得分:0)

我希望你能弄清楚你的问题。在服务器上构建ci时遇到了同样的问题。

我将外壳用作Runner的执行器。 这是找出问题的步骤。

1在运行服务器上检查用户

如果您已经在运行服务器上成功安装了maven,也许只是对root而言成功,那么您可以检查真实用户的ci进程。

job1:
  stage: test
  script:  whoami

如果是我的情况,它将显示gitlab-runner,而不是root

2 su真实用户,再次检查mvn

这一次,它输出的错误与Gitlab ci UI相同。

3为实际用户安装maven。再次运行管道。