我需要自动将特定格式的编译日期放入一个java源文件,比如c编译器的日期定义,如何定义?
1cklez4t1#
您可以使用aspectj编译时编织来初始化变量(您显然希望通过将aspect中的日期转换为字符串来完成赋值,然后让代码解析该字符串)。当然,也没有什么能阻止您在java文件上实际使用c预处理器。
qgzx9mmu2#
标准的java编译器没有办法做到这一点(我认为c编译器也没有——我猜是预处理器给出了日期、文件等)您必须将日期作为字符串写入源文件中—使用过滤器查看ant的复制任务
<copy file="pre-src/Version.java" toFile="src/Version.java"> <filterset> <filter token="DATE" value="${TODAY}"/> </filterset> </copy>
那么在你的源头
public class Version { public static final String date = "@DATE@"; }
今天要将各种格式的日期放入ant属性,请查看tstamp任务。
3gtaxfhh3#
你考虑过注解处理器吗?您可以在使用javac编译之前运行它们,然后在有特定注解的情况下手动将日期添加到文件中。
3条答案
按热度按时间1cklez4t1#
您可以使用aspectj编译时编织来初始化变量(您显然希望通过将aspect中的日期转换为字符串来完成赋值,然后让代码解析该字符串)。
当然,也没有什么能阻止您在java文件上实际使用c预处理器。
qgzx9mmu2#
标准的java编译器没有办法做到这一点(我认为c编译器也没有——我猜是预处理器给出了日期、文件等)
您必须将日期作为字符串写入源文件中—使用过滤器查看ant的复制任务
那么在你的源头
今天要将各种格式的日期放入ant属性,请查看tstamp任务。
3gtaxfhh3#
你考虑过注解处理器吗?您可以在使用javac编译之前运行它们,然后在有特定注解的情况下手动将日期添加到文件中。