我更习惯于制作,所以我很困惑为什么ant在没有更改源时重新编译类。我已经读过在某些使用泛型的情况下需要重新编译,但我不确定这对我的项目是否有必要。
另外,在javac任务中,我设置了includeDestClasses =“true”
以下是我正在使用的一些目标
<target name="init">
<mkdir dir="${build}"/>
<mkdir dir="${dist}"/>
</target>
<target name="compile" depends="init,util,semantics" description=""/>
<target name="util" depends="" description="">
<javac destdir="${build}" classpath="project.class.path" debug="on" srcdir="${src}/util" includeDestClasses="true" source="1.5">
<classpath refid="project.class.path"/>
</javac>
</target>
答案 0 :(得分:9)
尝试修改javac
任务的开始标记,以包含srcdir
属性和includes
属性:
<javac destdir="${build}" classpath="project.class.path" debug="on" srcdir="${src}" includes="util/**" includeDestClasses="true" source="1.5">
答案 1 :(得分:7)
你的src&amp; dest目录不等效,因此ant无法有效地统计输出文件以进行比较。
答案 2 :(得分:1)
根据我的经验,即使没有includeDestClasses属性,javac目标也不会编译所有类,只需要编译需要它的类。事实上,我通常设置两个(或更多)编译目标,一个完成编译(通过删除输出目录强制执行)和一个快速更新编译目标,就像你的javac行一样。你确定你的一个依赖项没有删除输出目录吗?