通过ANT检索SVN修订版



所以,我有一个Java项目,我为它构建了一个(相当复杂的)ANT构建文件。在这个文件中,我有编译、JAR 和测试我的代码的目标,这些目标都运行良好。

这个项目的有趣之处在于,团队成员正在他们的个人机器上工作,其中许多机器都在Windows 7上运行Eclipse Juno。我不能保证我添加到ANT的任何库都可以在其他成员的计算机上使用。因此,我正在尝试在运行时引用所有必要的库。但是,当我尝试获取当前修订号时,我收到错误。

错误:

svntest:
[echo] Svn4Ant: JWare AntXtras/Svn4Ant 3.0.0, Aug-22-2011, SVNKit: SVN/1.7.8 SVNKit/1.7.8 (http://svnkit.com/) r9538_v20130107_2001
[svn:revget] Unable to execute svnclient subcommand revget. Reason: "svn: E155021: The path {Project Repository} appears to be part of a Subversion 1.7 or greater
[svn:revget] working copy.  Please upgrade your Subversion client to use this
[svn:revget] working copy.".

ANT 类路径:

AntClassLoader[C:UsersUserworkspaceRoboLibutilsant-commons-net.jar;
C:UsersUserworkspaceRoboLibutilsant-googlecode-0.0.3.jar;
C:UsersUserworkspaceRoboLibutilscommons-net-3.2.jar;
C:UsersUserworkspaceRoboLibutilsjw-antxtras.jar;
C:UsersUserworkspaceRoboLibutilsjw-svn4ant-admin.jar;
C:UsersUserworkspaceRoboLibutilsjw-svn4ant.jar; 
C:UsersUserworkspaceRoboLibutilssvnkit-1.7.8.jar;
C:UsersUserworkspaceRoboLibutilssvnkit-cli-1.7.8.jar;
C:UsersUserworkspaceRoboLibutilssvnkit-javahl16-1.7.8.jar]

所有这些库都是最新版本,并且正在测试它们的系统是在Windows 7上运行的Eclipse Juno。

相关的蚂蚁目标:

<project default="run" name="WAVE RoboLib SDK" basedir="." xmlns:svn="jwaresoftware.svn4ant.client">
... 
<target name="svntest">
    <taskdef uri="jwaresoftware.svn4ant.client"     
    resource="org/jwaresoftware/svn4ant/client/antlib.xml">
        <classpath>
            <fileset dir="utils/">
                <include name="**.jar"/>
            </fileset>
        </classpath>
    </taskdef>
    <svn:libcheck/> 
    <echo message="Svn4Ant: ${svn4ant.label}, SVNKit: ${svnkit.label}"/>
    <svn:server id="my.repo" isdefault="yes" authcache="no" >
        <url value="${svn.url}"/>
        <credential username="un" password="pw"/>
    </svn:server>
    <svn:revget path="." property="build.reporev" />
    <echo message="${build.reporev}" />
</target>
</project>

看起来 svn4ant 不支持 svn 1.7 存储库,请参阅有关此主题的相关讨论,其中包含包括源代码参考在内的说明。

从 svn4ant 的发布计划来看,没有计划很快支持 svn 1.7 工作副本。因此,您应该寻找另一种方法来获取修订信息。

一种选择是解析svn info输出,使用 svnversion 获取工作副本的修订版,或使用提交后钩子将修订号存储在其他地方。

最新更新