加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何使用ANT仅编译已更改的源文件

发布时间:2020-12-14 06:01:46 所属栏目:Java 来源:网络整理
导读:我正在尝试编写用于编译源文件夹的ant build,这是我编译的脚本目标. target name="compile" depends="init" javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true" classpath refid="master-classpath"/ /javac /target 在我的项目中,我有大约10
我正在尝试编写用于编译源文件夹的ant build,这是我编译的脚本目标.
<target name="compile" depends="init">
        <javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true">
            <classpath refid="master-classpath"/>
        </javac>

    </target>

在我的项目中,我有大约1000个.java文件.当更改单个.java文件时,目标往往会编译所有.java文件.这使得开发非常缓慢.我只想知道有没有任何方法或代码来改变任务的行为,只编译修改或更改.java文件而不是所有.java文件.

请帮我.

解决方法

据我了解,仅编译修改过的java文件是ant javac task的默认行为. Ant使用.java文件的时间戳及其相应的.class文件来确定是否需要重新编译Java文件.我在很多项目中都使用它,从来没有问题.

以下是您可以查看的一些内容

>您的源树目录结构是否与Java包匹配
结构体?请参阅Why does ant always recompile all my Java files?.这可能是常见问题解答中的第一个原因.>我看到你的编译目标取决于init目标? init目标有什么作用?它取决于任何干净的目标还是清理.class文件?>你的蚂蚁版本是什么?你可以尝试不同的蚂蚁版本,看看你是否还有同样的问题?>如果以上都不能解决您的问题,那么在编译之后,您是否可以手动检查.class文件时间戳并将其与相应的.java文件的时间戳进行比较?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读