我得到 Maven 错误:
Cannot get the revision information from the scm repository
知道如何解决这个问题吗?
我也遇到了问题,我在 Windows 上的解决方案是:将环境变量 PATH 设置为“...\git\bin”。Java 找不到使用 Git 的目录。
在 Google 上快速搜索似乎表明此错误与 buildnumber-maven-plugin 有关。但是,我无法在我的机器(GNU/Linux 上的 Maven 2.2.1、Java 1.6.0_16、svn 1.6.5)上的命令行上重现该错误:
pascal@laptop:~/tmp/$ svn co http://wiquery.googlecode.com/svn/branches/1.0-m2 wiquery
...
pascal@laptop:~/tmp/$ cd wiquery
pascal@laptop:~/tmp/wiquery$ mvn validate
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building WiQuery project
[INFO] task-segment: [validate]
[INFO] ------------------------------------------------------------------------
[INFO] [buildnumber:create {execution: default}]
[INFO] Checking for local modifications: skipped.
[INFO] Updating project files from SCM: skipped.
[INFO] Executing: /bin/sh -c cd /home/pascal/tmp/wiquery && svn --non-interactive info
[INFO] Working directory: /home/pascal/tmp/wiquery
[INFO] Storing buildNumber: 208 at timestamp: 1256499766371
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Sun Oct 25 20:42:46 CET 2009
[INFO] Final Memory: 13M/77M
[INFO] ------------------------------------------------------------------------
pascal@laptop:~/tmp/wiquery$
根据我在 Google 上看到的情况,问题的可能原因包括:
但是,如果没有关于您的上下文、您的环境、您在做什么、何时发生此错误等的更多信息,似乎很难在诊断中走得更远。
当我帮助同事将他的项目迁移到 Maven 时,我在 buildnumber-maven-plugin 中遇到了这个错误。
我们还没有将代码签入迁移项目中的 svn,因此 .svn 文件夹不存在。显然它无法获得 svn 修订版,因为数据不存在。
解决方案是注释掉插件,将代码导入svn。使用启用了 svn 的代码执行构建,然后重新安装插件并解决任何其他错误。(在 Hudson 上运行时我们遇到了 doUpdate 的一些问题,因此我们删除了这些步骤)。
当 .svn 不存在时,此错误是由 buildnumber-maven-plugin 中的 javasvn 提供程序引起的。从 SVN 签出您的项目或不使用 javasvn。如果没有 javasvn,buildnumber-maven-plugin 使用命令行 svn 客户端,然后在这种情况下,即使没有 .svn 目录,buildnumber-maven-plugin 也可以继续进行(但内部版本号设置不正确)。
我认为这是 buildnumber-maven-plugin 中的一个错误,即缺少 .svn 目录时 javasvn 无法继续。
我们可以使用Netbeans8解决的一种情况:
请注意,已选中 Prefer Old Subversion 1.6 Format
而且我将正确的 apache SVN 与给定的 Maven 属性相匹配
确保 Jenkins 和操作系统指向相同的 Java 版本。
我在 Windows 上运行 Jenkins 2.121.2 时遇到了类似的问题。
构建会成功,但我没有得到任何 scm 数据。
相关的控制台输出:
[INFO] --- buildnumber-maven-plugin:1.4:create (default) @ amis ---
[INFO] Executing: cmd.exe /X /C "svn --non-interactive info"
[INFO] Working directory: D:\Program Files (x86)\Jenkins\workspace\myWebapp
[WARNING] Cannot get the revision information from the scm repository, proceeding with revision of Unavailable :
Exception while executing SCM command.
[INFO] Storing buildNumber: Unavailable at timestamp: 1534704912706
[INFO] Executing: cmd.exe /X /C "svn --non-interactive info"
[INFO] Working directory: D:\Program Files (x86)\Jenkins\workspace\myWebapp
[WARNING] Cannot get the branch information from the scm repository, proceeding with UNKNOWN_BRANCH :
Exception while executing SCM command.
[INFO] Storing buildScmBranch: UNKNOWN_BRANCH
但是,在 DOS 中,以下命令可以工作:
D:\Program Files (x86)\Jenkins\workspace\myWebapp\svn --non-interactive info
也就是说,我会得到预期的 scm 信息。所以 svn 在路径中,没有问题。
事实证明,我的 Java 版本的路径是交叉的。
我的 PATH 环境变量中的第一个与 Java 相关的路径是:
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
但是 Jenkins 被配置为使用:
C:\Program Files\Java\jdk1.8.0_181
在 PATH 环境变量中,我将 x86 Java 路径替换为 Jenkins 指向的路径并且它工作正常。
我没有根除路径的方式或原因。从每个路径解析的两个 java.exe 文件似乎是相同的版本。x86 版本可以运行 svn。根本原因高于我的工资等级。
对于也遇到相同问题的 git 用户 - 尝试将 git 的 PATH 添加到环境变量中。如果这不起作用 - 请按照此处列出的解决方案 -无法从 scm 存储库获取分支信息
嗯...正在将 svn 迁移到 git...并且 pom xml 有 svn repo 链接,因此将其更新为 git,并且可以更新 pom xml scm