新建mvn项目,上传svn后报错Execution default of goal com.google.code.maven-svn-revision-number-plugin:svn-revision-number-maven-plugin:1.13:revision failed: String index out of range: -1解决
报错前操作
1.新建了mvn项目,编译,打包正常,准备上传svn(已引入插件svn-revision-number-maven-plugin)
2.登录svn服务器,使用svnadmin create 创建仓库,修改相关配置文件,重启svn服务
3.客户端checkout版本到本地,比如C:\demo。将src及pom文件拷贝到demo目录下,上传前编译报错
解决
加-e再次编译
mvn compile -e
寻找源码位置
不出意外,应该是这一行的substring出错,角标越界
分析:1.repositoryRoot这个是什么东西呢?用其他编译正常项目demo2编译一下,resource下文件
version.properties
repository = ${svn.repository}
path = ${svn.path}
revision = ${svn.revision}
mixedRevisions = ${svn.mixedRevisions}
committedRevision = ${svn.committedRevision}
committedDate = ${svn.committedDate}
status = ${svn.status}
specialStatus = ${svn.specialStatus}
编译这个正常项目demo2,得到repository 是项目仓库的根目录,path 是demo2的svn地址。
怀疑:是不是demo的仓库和url是一样的,所以,在截取的时候+1就会角标越界。而这个正常项目demo2的位置是在仓库根目录C:\demo2\sss\demo2下,
尝试:在本地demo的根目下再新建一层目录demo,如C:\demo\demo,再把src和pom放入,编译,成功。
初步结论:项目不要直接放在仓库跟目录下,仓库根目录下再新建一个文件夹放项目,搞不懂这个插件为什么在截取url的时候为什么要再加1,以后有时间再研究。