我有以下用例:
我有一个java项目(myProj),它使用来自不同项目的common.jar(常见)。我希望javac ant任务能够工作,即使myProj的源代码没有改变如果 common.jar已经改变(因为myProj的源代码依赖于它,现在可能无效)。
我有一个任务,它将common.jar从一个中心位置复制到myProj lib,如果它已经改变了,我可以使用它设置一个属性是否“强制”编译,以便结束处理。
我不知道怎么(或者如果)我可以告诉javac任务尝试编译呢?我不想更改myProj的源(或时间戳),以便任务开始
摘自ant build.xml文件:
<path id="project.class.path">
<pathelement location... />
...
<fileset dir="lib" includes="**/*.jar" />
</path>
<target name="copyLibs" >
<copy file="${central.loc}/common.jar" todir="lib" />
...
</target>
<target name="javac" >
<javac srcdir="src" includes="**" excludes=... >
<classpath refid="project.class.path"/>
</javac>
</target>
提前致谢,
以太
答案 0 :(得分:2)
在delete
之前使用javac
任务来清理旧的编译类:
通常,如果依赖类的API没有更改,则不应重新编译java类。
另外我建议使用maven,因为它可以更优雅地处理依赖关系。