2

我有 ant 构建文件,调用时应该进行 cvs 签出。我可以称它为 ok,但是当 ant 使用 cvs 连接到 cvs repo 时,repo 提示输入密码,显然 ant 命令失败。

我有 CVSROOT 环境变量指向我使用 TortoiseCVS 对项目进行初始签出的相同位置,并使用 ssh 作为协议。

我还运行了 putty 的选美比赛和指向 putty 的 plink.exe 的环境变量 CVS_RSH。这种组合应该通过 putty 建立连接,因为从 pageAnt 菜单打开连接时没有提示。

我的操作系统是Windows 8。

这里的问题是,为什么 ant build 在cvs server password prompt上失败,尽管PageAnt正在通过 ssh+cvs启用无提示访问?

4

1 回答 1

2

Antcvs任务从中调用cvs.exe命令行,PATH因此如果从命令行中一切正常,那么(几乎)没有理由从 Ant 中失败。

这是一个清单,其中包含要验证的要点:

  • CVSROOT必须包含用户名并指定ext协议,:ext:username@cvserver.domain.ldt:/path/to/repository
  • CVS_RSH必须指向plink.exe绝对文件路径,并且您必须确保它将使用 SSH 协议
  • 您的 SSH 私钥必须已加载到 Pageant 中,用于与运行 Ant 脚本的用户相同的用户会话

如果没有帮助,请提供有关您的cvs任务选项和工作站设置的更多详细信息。

当在没有打开任何用户会话的情况下运行并且 Pageant 无法提供帮助时,通常对于持续集成工具,更好的选择是将所有参数(如用户名和私钥文件)plink直接传递给CVS_RSH变量:

CVS_RSH="C:\path\to\plink.exe -batch -ssh -l username -i C:\path\user\ssh-privatekey.ppk"

当然,在这种情况下,您的私钥文件一定不能使用密码保护。

于 2013-07-27T14:08:29.737 回答