您的位置:首页 > 运维架构

解决 svn: E155021: This client is too old to work with the working copy

2015-10-16 13:51 701 查看
这个错误是在使用maven插件maven-svn-revision-number-plugin获取SVN版本号时引起的。

pom.xml原配置如下:

<plugin>
<groupId>com.google.code.maven-svn-revision-number-plugin</groupId>
<artifactId>maven-svn-revision-number-plugin</artifactId>
<version>1.6</version>
<configuration>
<verbose>true</verbose>
<entries>
<entry>
<prefix>SVN</prefix>
<depth>empty</depth>
</entry>
</entries>
</configuration>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.tmatesoft.svnkit</groupId>
<artifactId>svnkit</artifactId>
<version>1.7.8</version>
</dependency>
</dependencies>
</plugin>

当本地安装的SVN版本为1.8或大于1.6时,打包时就会出现错误:

svn: E155021: This client is too old to work with the working copy

解决方法:升级插件版本以及依赖SVN的版本

原插件maven-svn-revision-number-plugin已经升级为svn-revision-number-maven-plugin,配置版本为1.13,依赖的svnkit版本设置为1.8.5,这样既能支持低SVN版本1.6的也能支持1.8的了。

pom.xml完整的配置如下

<plugin>
<groupId>com.google.code.maven-svn-revision-number-plugin</groupId>
<artifactId>svn-revision-number-maven-plugin</artifactId>
<version>1.13</version>
<configuration>
<verbose>true</verbose>
<entries>
<entry>
<prefix>SVN</prefix>
<depth>empty</depth>
</entry>
</entries>
</configuration>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.tmatesoft.svnkit</groupId>
<artifactId>svnkit</artifactId>
<version>1.8.5</version>
</dependency>
</dependencies>
</plugin>

如上配置后pom.xml后可能会报错:

Plugin execution not covered by lifecycle configuration: com.google.code.maven-svn-revision-

 number-plugin:svn-revision-number-maven-plugin:1.13:revision (execution: default, phase: 

 validate)

可以忽略它,执行打包命令的的时候,添加忽略选项:-Dsvn-revision-number.failOnError=false。

完整的打包命令如:mvn clean package -Dsvn-revision-number.failOnError=false,Eclipse配置相似。

至此问题解决!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: