![](/img/trans.png)
[英]Azure DevOps Pipeline for Java Project with self hosted agent
[英]Azure Pipelines does not recognize mvn in self hosted agent
我已经在我自己的代理上安装了 maven,当我从 putty 运行命令mvn -v
时,我得到了这个 output:
Maven home: /opt/maven Java version: 1.8.0_292, vendor: Private Build, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre Default locale: en_US, platform encoding: UTF-8 OS name: " linux”,版本:“4.15.0-1071-azure”,arch:“amd64”,家族:“unix”
有了这个 output ,我确保 maven 安装正确并且环境变量设置正确。
但是,当我从 azure devops 在此代理上运行 maven 任务时,我收到以下错误消息:
##[错误]未处理:无法找到可执行文件:'mvn'。 请验证文件路径是否存在,或者该文件是否可以在 PATH 环境变量指定的目录中找到。 还要检查文件模式以验证文件是否可执行。
我尝试仅运行 azure devops bash 任务,该任务将执行命令mvn -v
,我收到以下错误:
mvn:找不到命令
感谢您的支持,因为我确信 Maven 已安装和配置良好,但由于某种原因 azure devops 无法识别这些命令
我尝试了很多方法,但都没有奏效。
最后我想到从 azure devops 分配环境变量。
首先,我尝试创建一个 bash 任务,该任务将运行命令export M2_HOME=/opt/maven
但它不起作用。
然后我尝试了 azure 自己的指令: echo "##vso[task.setvariable variable=M2_HOME]/opt/maven"
并且效果很好。
具体解决方案是在分配所有必要环境变量的 maven 任务之前创建两个任务,如下所示:
任务运行以下命令:
注意:分配在单个任务中不起作用,因为第二个任务使用在第一个任务中分配的变量。 如果要定义一个变量并在同一任务中使用它,它将不起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.