ant ftp任务“无法测试远程文件的日期”

时间:2011-02-19 14:33:28

标签: java ant ftp

我正在使用Ant ftp任务将我的项目文件部署到远程应用服务器。 Ant无法检测远程文件的日期,并且每次都会重新上载所有文件。

当我在调试模式下启动Ant时,它说:

  [ftp] checking date for mailer.war
  [ftp] Could not date test remote file: mailer.war assuming out of date.

远程服务器是MS FTP(Windows Vista版) Ant版本是1.8.2;我使用commons-net-2.2和jakarta-oro-2.0.8(找不到更新的版本)

我的蚂蚁任务看起来像这样

  <!-- Deploy new and changed files -->
  <target name="deploy" depends="package" description="Deploy new and changed files">
    <ftp server="localhost"
          userid="" password=""
          action="send" depends="yes"
          passive="true"
          systemTypeKey="WINDOWS" serverTimeZoneConfig="Europe/Sofia"
          defaultDateFormatConfig="MMM dd yyyy" recentDateFormatConfig="MMM dd HH:mm"
          binary="true" retriesAllowed="3"
          verbose="true">
      <fileset dir="${webapp.artefacts.path}"/>
    </ftp>
  </target>

我在这里读了一篇文章:Ant:The definitive guide说我需要一个版本的jakarta oro AFTER 2.0.8与MS FTP服务器交谈,我从SVN构建了jakarta-oro-2.1-dev-1并使用它,但我得到了同样的东西。与新库或没有oro库没有任何区别。我注意到Ant lib中有ant-apache-oro.jar。我试图删除它,没用。还有ant-commons-net.jar,但没有外部commons-net-2.2.jar,ftp将无法运行。很奇怪。

拜托,有人可以帮我吗? Ant ftp任务的任何解决方案或任何替代方案?谢谢!

2 个答案:

答案 0 :(得分:1)

jakarta-oro-2.0.8是最新的官方(和稳定版),但svn存储库中有更新的开发版本:

这里有2.0.9-dev-1:http://svn.apache.org/repos/asf/jakarta/oro/tags/oro-2.0.9-dev-1/

我认为2.1-dev-1在这里是主干:http://svn.apache.org/repos/asf/jakarta/oro/trunk/

您必须自行检查并自行构建(我认为只运行ant将默认构建jar)。从行李箱中检查出来:

svn co http://svn.apache.org/repos/asf/jakarta/oro/trunk/ oro

编辑:您确定MS FTP文件日期是MMM dd HH:mm格式吗?尝试登录到您的ftp并执行LIST命令。我认为它更像MM/dd/yyyy HH:mm:ss(或者可能没有秒)。

同时尝试添加timediffauto="true"。它可能是时间戳同步问题。

答案 1 :(得分:1)

我升级到IIS 7.5 FTP服务,现在一切都很好。谢谢你的帮助。