我们使用Eclipse作为默认IDE已经有一段时间了,它一直是一个令人头疼的问题,但放弃它并不是一个选择,因为我们的构建过程与它密不可分。我最近设置我们能够从VSCode进行构建。问题是,除了我的电脑,这个版本适用于每台电脑,我一辈子都想不出原因。当从我的计算机上运行时,并且只有我的计算机,在生成期间将无法检测到已修改的文件。更奇怪的是,当被动FTP设置为"是"时,文件会被忽略,就好像它们根本没有被修改一样。然而,当它被设置为"否"时,我会得到这个错误:
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时看到我的文件,似乎找不到任何资源来帮助我找出可能的原因。有什么建议吗?
好的,所以我发布了我自己问题的答案,因为我终于回到了这个项目,我们解决了这个问题。。。有点。我们的服务器时间比我的本地时间提前了6个小时,由于某种原因,构建文件不确定使用哪个时间。我不知道为什么会发生这种情况,因为它对其他人都是未经修改的,我验证了他们都看到了与我相同的日期时间条目。然而,为每个ftp调用显式地选择服务器时区对我来说很有用,而且不会破坏他们的任何东西,所以现在我们有了一个适用于所有人的通用VSCode构建。如果有人知道为什么这样做有效,我仍然很感兴趣。由于修改代码对其他人来说是不必要的,所以我认为问题一定是系统设置,而不是代码,但最终通过修改build.xml解决了这个问题。这个问题已经解决了,但我仍然不知道为什么它一开始不起作用,也不知道为什么修复有效,如果有人对此进行澄清,我会很高兴,但这个问题在技术上是固定的,如果其他人有这个问题,至少你可以尝试一下。