Apache flex 为什么我的svn ant任务失败?

Apache flex 为什么我的svn ant任务失败?,apache-flex,svn,ant,svnant,Apache Flex,Svn,Ant,Svnant,我正在尝试运行构建脚本,但在特定的svn任务中不断出现错误。当我试图从命令行构建目标时,我得到了一个身份验证错误。当我从flex builder运行构建时,我收到一个错误,上面写着“请获取一个更新的Subversion客户端”。据我所知,在执行ant-verbose时,这里可以看到一个根本问题: svn_update: [echo] Updating the project source... [svn] Using javahl [svn] <Update&g

我正在尝试运行构建脚本,但在特定的svn任务中不断出现错误。当我试图从命令行构建目标时,我得到了一个身份验证错误。当我从flex builder运行构建时,我收到一个错误,上面写着“请获取一个更新的Subversion客户端”。据我所知,在执行ant-verbose时,这里可以看到一个根本问题:

svn_update:
    [echo] Updating the project source...
     [svn] Using javahl
     [svn] <Update> started ...
     [svn] update /Users/dave/Documents/Flex Builder 3/AssetLibrary -r HEAD --force
     [svn] At revision 373.
     [svn] <Update> finished.
     [ant] Exiting /Users/dave/Documents/Flex Builder 3/Simulation/build-template/commonbuild.xml.
     [ant] Exiting /Users/dave/Documents/Flex Builder 3/AssetLibrary/build.xml.
    [echo] Updating DataService Source

...

svn_update:
    [echo] Updating the project source...
     [svn] Using command line
     [svn] <Update> started ...
     [svn] up -r HEAD /Users/dave/Documents/Flex Builder 3/DataService --non-interactive
     [svn] svn: OPTIONS of 'https://svn.example.com/{redacted}': authorization failed: Could not authenticate to server: ignored NTLM challenge, rejected Basic challenge (https://svn.example.com)
     [svn] <Update> failed !
     [ant] Exiting /Users/dave/Documents/Flex Builder 3/Simulation/build-template/commonbuild.xml.
     [ant] Exiting /Users/dave/Documents/Flex Builder 3/DataService/build.xml.
     [ant] Exiting /Users/dave/Documents/Flex Builder 3/Simulation/build.xml.
svn\u更新:
[echo]正在更新项目源。。。
[svn]使用javahl
[svn]开始。。。
[svn]更新/Users/dave/Documents/Flex Builder 3/AssetLibrary-r HEAD-force
[svn]第373版。
[svn]完成了。
[ant]退出/Users/dave/Documents/Flex Builder 3/Simulation/build template/commonbuild.xml。
[ant]正在退出/Users/dave/Documents/Flex Builder 3/AssetLibrary/build.xml。
[echo]正在更新数据服务源
...
svn_更新:
[echo]正在更新项目源。。。
[svn]使用命令行
[svn]开始。。。
[svn]up-r HEAD/Users/dave/Documents/Flex Builder 3/DataService——非交互式
[svn]svn:选项'https://svn.example.com/{redacted}”:授权失败:无法对服务器进行身份验证:忽略NTLM质询,拒绝基本质询(https://svn.example.com)
[svn]失败了!
[ant]退出/Users/dave/Documents/Flex Builder 3/Simulation/build template/commonbuild.xml。
[ant]正在退出/Users/dave/Documents/Flex Builder 3/DataService/build.xml。
[ant]正在退出/Users/dave/Documents/Flex Builder 3/Simulation/build.xml。
如您所见,第二个(失败的)svn_更新目标使用命令行,第一个(工作的)更新使用javahl。我使用的是svn的默认属性,所以应该默认使用javahl

我将svnant JAR更新为1.3.0

我想帮你做这个


Dave

我注意到的第一件事是javahl one没有调用与上一个相同的目录上的更新:

/Users/david.marr/Documents/Flex Builder 3/AssetLibrary

vs

/Users/david.marr/Documents/Flex Builder 3/DataService


这可能是因为存在其他SVN问题,而您只是收到了一条误导性的错误消息。另外,您确定url{redacted}被正确解析了吗?“{redacted}”在我看来不像ANT语法,也不是常规url。

也许您的命令行客户端太旧了,服务器对允许连接的客户端有版本限制?
svn--version
怎么说?

我通常会得到
无法向服务器进行身份验证:忽略NTLM质询,拒绝基本质询
错误我在非交互模式下使用svn更新(例如:
svn update--non interactive>output.txt
),以及当我的NT或Active Directory密码发生更改时。解决此问题的方法是首先运行
svn update>output.txt
,然后提示您输入密码。一旦提供,您将获得以下信息

Authentication realm: <http://svnserver:80> SVN Server
Password for 'siacca':
-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

   <http://svnserver:80> SVN Server

can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/cygdrive/u/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes
身份验证领域:SVN服务器
“siacca”的密码:
-----------------------------------------------------------------------
注意!验证域的密码:
SVN服务器
只能未加密地存储到磁盘!建议您配置
您的系统,以便Subversion可以存储加密的密码,如果
可能的有关详细信息,请参阅文档。
通过设置该值,可以避免以后出现此警告
将“存储明文密码”选项设置为“是”或“否”
“/cygdrive/u/.subversion/servers”。
-----------------------------------------------------------------------
存储密码未加密(是/否)?对

完成后(我同意你的意见,我也不喜欢不加密地存储我的密码,但这是我可以自动运行每晚svn更新的唯一方法),你应该能够在非交互模式下运行svn更新。

谢谢tehmou,我从粘贴中删除了url并添加了{redacted}。我只是不确定粘贴我公司的svn回购结构是否酷。不过我同意,区别在于javahl调用。不过,我不认为构建脚本中有任何东西会导致这种情况。哦,对不起,我当时似乎在重复显而易见的内容。我只是偶尔会遇到这样的问题,当请求中留下未解析的东西时:P使用什么样的命令运行第一个命令?我只熟悉从Eclipse或命令行运行ANT脚本,这听起来像是从其他地方执行的,它们都是通过svn_更新任务运行的。没有使用额外的参数来告诉一个人使用命令行,另一个人使用javahl。这是一个已知的问题吗?svn,版本1.6.6(r40053)编译于2009年10月22日,14:13:09好吧,我真的不在乎你使用哪个版本,但服务器可能会。你会想和服务器管理员谈谈这个问题。“拒绝基本挑战”听起来像是服务器试图验证连接的客户端是否足够新。嗯,我正在运行opencollab svn二进制文件。看起来它们足够新了。这很奇怪,因为其他svn_更新任务工作正常。此外,此repo与其他repo是同一台服务器。