我有一台服务器和我的开发计算机在不同的时区。
WAR文件无法包含时区信息。
那么自动部署器如何决定复制什么和不复制什么呢?
在这个话题上我有很多错误。有时我得到一个消息,文件在未来被修改。其他时候,我的上传没有激活或文件没有复制。我正在放置一个WAR来部署SSH/SCP文件夹(ant SCP任务)。
自动部署器基本上无条件地部署所有内容。
如果您通过低带宽连接复制应用程序,那么它可能在WAR文件完全到达之前启动,从而在日志中生成大量错误。
我偶尔看到文件有未来修改日期的消息,到目前为止我不记得出现了任何特别的问题。您可能希望为整个服务器声明时区,并尝试将硬件时钟设置为与服务器所在的时区进行比较。构建服务器也是如此——您可能希望基于UTC、本地时区或服务器的(配置的)时区对文件进行时间戳。
请注意,操作系统可能有一些设置,而Java可能采用不同的设置,从而发生冲突。你是对的:文件和目录的时间戳是纯时间戳,而不是时区信息。
如果您的时区&时间戳的变化会导致一些人认为Liferay或tomcat对时间戳的解释是不正确的,您可能想要提交一个关于如何复制的信息的问题。我认为这需要很多细节,以便在其他方面可复制。时间戳问题可能很难重现"UTC的这一边"one_answers"UTC的另一边"-例如UTC时区的西部和东部,所以请尽可能多地提供信息:
- 构建服务器是如何配置的
- 您的部署服务器是如何配置的
- WAR文件中包含的文件的时间戳是什么,WAR文件本身的时间戳
- 当你启动服务器时,日志文件的时间戳是什么?
- 服务器日志中记录的时间是多少?它与文件的时间戳匹配吗?
- 你在UTC的哪一边?