1

そのため、(かなり複雑な) ANT ビルド ファイルをビルドした Java プロジェクトがあります。このファイル内には、コードをコンパイル、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:\Users\User\workspace\RoboLib\utils\ant-commons-net.jar;
C:\Users\User\workspace\RoboLib\utils\ant-googlecode-0.0.3.jar;
C:\Users\User\workspace\RoboLib\utils\commons-net-3.2.jar;
C:\Users\User\workspace\RoboLib\utils\jw-antxtras.jar;
C:\Users\User\workspace\RoboLib\utils\jw-svn4ant-admin.jar;
C:\Users\User\workspace\RoboLib\utils\jw-svn4ant.jar; 
C:\Users\User\workspace\RoboLib\utils\svnkit-1.7.8.jar;
C:\Users\User\workspace\RoboLib\utils\svnkit-cli-1.7.8.jar;
C:\Users\User\workspace\RoboLib\utils\svnkit-javahl16-1.7.8.jar]

これらのライブラリはすべて最新バージョンであり、テスト対象のシステムは Windows 7 で実行されている Eclipse Juno です。

関連する ANT ターゲット:

<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>
4

1 に答える 1

2

svn4ant は svn 1.7 リポジトリをサポートしていないようです。このトピックに関する関連する議論と、ソース コードの参照を含む説明を参照してください。

svn4antのリリース計画から判断すると、すぐに svn 1.7 の作業コピーをサポートする計画はありません。したがって、リビジョン情報を取得する別の方法を探す必要があります。

1 つのオプションはsvn info、出力を解析svnversionし、作業コピーのリビジョンを取得するために使用するか、ポストコミット フックを使用して別の場所にリビジョン番号を保存することです。

于 2013-01-28T20:42:57.490 に答える