Jenkins、Maven Release插件和SVN

4
我正在使用Jenkins的Maven Release插件进行发布。我遇到了以下错误:
    message : Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.2.2:prepare (default-cli) on project kobv-albert-frontend-dkfz: Unable to check for local modifications
Provider message:
The svn command failed.
Command output:
svn: E155036: Please see the 'svn upgrade' command
svn: E155036: Working copy '/var/lib/jenkins/jobs/svn-lokal-dkfz/workspace' is too old (format 10, created by Subversion 1.6)

cause : Unable to check for local modifications
Provider message:
The svn command failed.
Command output:
svn: E155036: Please see the 'svn upgrade' command
svn: E155036: Working copy '/var/lib/jenkins/jobs/svn-lokal-dkfz/workspace' is too old (format 10, created by Subversion 1.6)

Stack trace : 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.2.2:prepare (default-cli) on project kobv-albert-frontend-dkfz: Unable to check for local modifications
Provider message:
The svn command failed.
Command output:
svn: E155036: Please see the 'svn upgrade' command
svn: E155036: Working copy '/var/lib/jenkins/jobs/svn-lokal-dkfz/workspace' is too old (format 10, created by Subversion 1.6)

我尝试了svn upgrade,但没有帮助。我还尝试了不同版本的maven-release-plugin

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-release-plugin</artifactId>
  <version>2.2.2</version>
  <dependencies>
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-scm-plugin</artifactId>
      <version>1.7</version>
    </dependency>
  </dependencies>
</plugin>

这也没有帮助。可能是什么原因导致了这个问题,我该如何修复它?


1
你尝试查看这个链接了吗?https://dev59.com/RWUp5IYBdhLWcg3wtZI0 - Fausto Carvalho Marques Silva
谢谢查看此篇文章,但不符合我的需求。 - andy_bu
我遇到了与OP相同的问题,Fausto发布的链接中提供的解决方案解决了我的问题。 - chrishern
2个回答

5

我曾遇到类似的问题。我通过使用与Jenkins使用相同的svn客户端来解决它。

<plugin>
  <artifactId>maven-release-plugin</artifactId>
  <version>2.4.1</version>
  <configuration>
    <providerImplementations>
      <svn>javasvn</svn>
    </providerImplementations>
  </configuration>
  <dependencies>
    <dependency>
      <groupId>com.google.code.maven-scm-provider-svnjava</groupId>
      <artifactId>maven-scm-provider-svnjava</artifactId>
      <version>2.0.6</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>
</plugin>

但是在配置完成之后,你必须清理你的工作区。


我该如何找出 Jenkins 正在使用的 SVN 版本?我已经四处寻找了。 - TenLeftFingers
不管 Jenkins 使用哪个版本的 Subversion,重要的是确保你指定的 maven-scm-provider-svnjava 版本支持你的代码库所使用的相同版本的 Subversion - 可以在此处查看主要的 Subversion 发布兼容性 https://code.google.com/a/apache-extras.org/p/maven-scm-provider-svnjava/。 - Conor Svensson

0

CI系统(Jenkins/Hudson)利用在ci运行的系统上安装的subversion(svn)。当它出现错误:Working copy at x/y/z is too old (format 8/10/11) to work with client version 'x.y.z (ie. 1.9.4). You need to upgrade working copy first. 有两种解决方法,要么将“Subversion Workspace version (svn version)”更新为与本地安装的svn版本格式匹配。如果ci不支持本地安装的svn,则需要降级或升级本地安装的svn版本以与jenkins的svn版本匹配。ci不能使用最新版本的svn,它使用稍低版本。

如果您正在内部使用svnkit或通过任何容器(如eclipse、webserver、tomcat、osgi..)利用环境变量,并且环境变量正常工作,则需要重新启动容器,以便它可以获取/重新加载环境变量的值。

“svn命令失败。svn未被识别为内部或外部命令,可执行程序或批处理文件。”我在尝试使用Jenkins自动构建时遇到了svn问题。基本上,我降级了本地svn以解决上述问题,并没有重新启动Tomcat,因此我遇到了这个问题。因此,在重新启动Tomcat后,它开始接收svn命令并成功运行。
使用Jenkins 1.7.1,操作系统:Window 8.x,Java:1.8.x 64位,Tomcat 8.x,为Jenkins和本地安装的svn客户端版本稳定的svn 1.8版本; 2016年7月26日,Vinod Bherwal。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接