【问题标题】:'svn' is not recognized as an internal or external command from Maven'svn' 未被识别为来自 Maven 的内部或外部命令
【发布时间】:2015-03-13 05:04:17
【问题描述】:

当我在 Jenkins 上使用空运行执行“执行 maven 发布”时,我在控制台日志中收到此错误:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 46.205s
[INFO] Finished at: Fri Mar 13 10:29:44 ICT 2015
[INFO] Final Memory: 6M/11M
[INFO] ------------------------------------------------------------------------
Projects to build: [MavenProject: com.library:MYPROJECT:0.0.1-SNAPSHOT @ E:\jenkins\workspace\MYPROJECT\pom.xml]
[JENKINS] Archiving E:\jenkins\workspace\MYPROJECT\pom.xml to /var/lib/jenkins/jobs/APGIS/modules/com.library$MYPROJECT/builds/2015-03-13_10-29-02/archive/com.library/MYPROJECT/0.0.1-SNAPSHOT/MYPROJECT-0.0.1-SNAPSHOT.pom
Waiting for Jenkins to finish collecting data
mavenExecutionResult exceptions not empty
message : Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.1:prepare (default-cli) on project MYPROJECT: Unable to check for local  modifications
Provider message:
The svn command failed.
Command output:
'svn' is not recognized as an internal or external command,
operable program or batch file.

我已经用 SlikSVN-1.6.1 和 mvn-3.0.4 安装了 SVN 客户端,并在 Maven-slave 机器的命令提示符下检查了安装的命令。

我尝试直接在 Maven-slave 上通过命令提示符进行“执行 maven 发布”。结果是工作!!。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.4</version>
</plugin>

POM.xml 中的 Maven-release-plugin 版本为 2.4.0。

这个问题出现在Windows7的Maven-slave机器上,但是即使两台机器之间的SVN客户端和mvn版本相同,也无法创建WindowsXP。

这可能是什么原因,我该如何解决?

【问题讨论】:

  • 你重启slave了吗?另外,你是说它在 Windows XP 上可以正常工作,但在 Windows 7 上不行?
  • 我已经重新启动,但结果是一样的。我有2台从机。它分别使用WindowsXP和Windows7。这个问题是在Windows7机器上发现的。

标签: maven svn plugins jenkins


【解决方案1】:

命令输出:'svn' 不是内部或外部命令、可运行程序或批处理文件。

这意味着 svn.exe 客户端可执行文件的文件夹位置不在 PATH 环境变量中。

【讨论】:

  • 我已经添加并检查了 svn.exe 客户端可执行文件到 Slave 机器的 PATH 环境。但似乎詹金斯无法访问它。您还有其他解决方案吗?
  • 使用 Windows 开始、运行菜单选项并输入 cmd.exe。在生成的命令提示符窗口中输入 svn.exe 并报告运行该命令的结果。
【解决方案2】:

你的奴隶是什么操作系统? Jenkins 在它自己的用户下运行。如果在 Linux/Mac 上,它将在 jenkins 用户下运行。仅仅因为您为自己的用户安装了svn,并不意味着所有其他用户都可以访问它。

以 jenkins 身份登录,然后验证:
sudo su - jenkins
svn

【讨论】:

  • 我的奴隶使用的是Windows7 32bits。
【解决方案3】:

您可以尝试为特定从站启用Tool locations,并明确指定svn 安装的HOME。为了达到这个目的,Manage jenkins -> Manage nodes -> Your Windows 7 node -> Configure

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 2013-10-11
    • 2013-01-25
    • 2016-10-01
    相关资源
    最近更新 更多