ANT生成期间未发送已修改的文件

时间:2019-01-25 22:07:06

标签: java ant ftp

一段时间以来,我们一直在使用Eclipse作为我们的默认IDE,这一直是令人头疼的问题,但由于我们的构建过程与之紧密相关,因此选择退出它并不是一个选择。我最近将我们设置为能够从VSCode进行构建。问题是,该构建适用于除我的计算机以外的所有计算机,而我无法终生弄清楚原因。从我的计算机(只有我的计算机)运行时,在构建过程中将无法检测到已修改的文件。更奇怪的是,当Passive FTP(被动FTP)设置为“ yes”(是)时,文件将被忽略,就好像它们根本没有被修改一样。但是,如果将其设置为“ no”,则会出现此错误:

SendPrivateMCS:
  [ftp] sending files
  [ftp] transferring C:\...\newtest.cfm

BUILD FAILED
C:\...\build.xml:1262: could not put file: 500 Illegal PORT command.

我明白为什么我得到这个错误。我正在尝试发送到配置为被动FTP的服务器。这不是一个谜。奇怪的是,当使用主动FTP时,会检测到我修改的测试文件,并尝试将其发送到服务器,但是当使用被动FTP时,它将全部忽略:

SendPrivateMCS:
  [ftp] sending files
  [ftp] 0 files sent
  [ftp] sending files
  [ftp] 0 files sent
  [ftp] sending files
  [ftp] 0 files sent
  [ftp] sending files
  [ftp] 0 files sent

同样,这仅在我的计算机上发生。其他开发人员以与我完全相同的方式构建了很好的设备,并且没有问题,这使我相信这是Java,Ant或我不知道但可以解决的某种本地FTP设置问题真的不知道该从哪里开始寻找。 build.xml文件与我们一直使用且未修改的文件相同。我尝试过重新安装Java,重新安装ANT,更改我的环境变量以及寻找不正确的卸载/删除文件的方法,但到目前为止没有任何效果。我知道我所提供的只是一些堆栈跟踪,但实际上没有与此相关的任何代码。我只是试图使用经过验证的build.xml从Powershell(ant Deploy -DDeployserver=foo)运行并进行ANT编译,该版本已经在这里使用了至少五年了。由于某种原因,它仅在我使用活动FTP时才能看到我的文件,并且似乎找不到任何资源来帮助我找出可能的原因。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

根据“阿加莎·克里斯蒂(Agatha Christie)”,“道尔爵士(Sir A.C. Doyle)”并阅读以下内容:

  

我们一直在使用 ...从计算机上运行时,并且只有我的计算机,...

(唯一的)结论可以是:您(计算机)具有“某些设置未到位,其他设置”!

根据经验和详细的问题描述,我的第一个猜测是:代理/防火墙设置! (欢迎来到“新”公司!)

..并深入阅读,它可能不是“计算机的设置”,而是在网络中(这限制了计算机使用特定的端点)!

..希望它会有所帮助! :)

答案 1 :(得分:0)

好吧,所以我要发布我自己的问题的答案,因为我终于回到了这个项目,并且我们找出了问题所在。我们的服务器时间比我的本地时间早6个小时,并且由于某种原因,生成文件不确定要使用哪个时间。我不确定为什么会发生这种情况,因为它对其他所有人都没有修改,并且验证了他们都看到了与我相同的datetime条目,但是,为每个ftp调用显式转换服务器时区对我来说是成功的,并且没有不会为他们破坏任何东西,所以现在我们有了通用的VSCode构建,适用于每个人。如果有人对为什么有任何了解,那么我仍然很感兴趣。由于不需要其他任何人来运行就可以修改代码,因此我认为问题必须出在系统设置而不是代码上,但是最终通过修改build.xml来解决了问题。该问题已解决,但我仍然不知道为什么一开始它不起作用,或者为什么该修复起作用了,并且如果有人对此进行了澄清,那么会喜欢它,但是从技术上来说,此问题已解决,并且如果其他人也有此问题,至少您可以尝试一下。