【问题标题】:Ant Compile Issue蚂蚁编译问题
【发布时间】:2014-10-30 02:01:15
【问题描述】:

我用今天的日期编译了一个java程序,然后我将系统日期更改为昨天并修改了java文件。现在它不会编译。我今天仍然有创建日期的课程。

<project name="SampleTest">
<target name="compile">
    <javac srcdir="${user.dir}" destdir="${user.dir}"/>
</target>
<target name="run">
    <java classname="TestSample" classpath="."/>
</target>
</project>

在此我收到警告消息

编译: [javac] 警告:将来会修改 TestSample.class。 2004 年 8 月 5 日编译的 Apache Ant 1.6.2 版

【问题讨论】:

    标签: java ant


    【解决方案1】:

    Warning: modified in the future 可能包含您正在寻找的某种解释。关于这种行为有多种想法,例如:

    “Ant 的此类问题可能来自 FAT/FAT32 文件系统缺乏时间戳精度,在 Windows 上使用 NTFS 代替,请参阅我的答案中的详细信息。”

    或者:

    "JSP 文件被编译。许多服务器还允许您替换正在运行的服务器上的文件。然后它会比较编译源的时间戳和 jsp 文件的时间戳以确定是否需要重新编译。

    如果文件的日期是将来的,jsp 文件将总是比类更新。这会给你一个警告。

    检查文件上的时间戳。也许有人在时钟不正确的计算机上创建了它,现在它似乎是“在未来创建的”。或者服务器的日期可能不正确(检查时区设置)。

    是否涉及远程文件服务器? Web 服务器和文件服务器之间的时钟漂移也会导致此错误。”

    但是我向您提出的问题是,您这样做到底想完成什么?我确信这是作为某种故障保护行为实施的。如果是这样,那么它肯定是有效的。

    您总是可以考虑让 Ant 先删除 .class 文件。

    【讨论】:

    • 当我的系统日期错误时,我曾经遇到过这个问题。所以尝试测试这个案例。但是为什么相同的场景在通过控制台进行正常的 java 编译时可以正常工作。
    • 是 Ant 导致了这个问题。 Java 编译器似乎不关心文件的时间戳,但 Ant 关心。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多