如果没有更改,java将跳过DLL编译
我正试图为我们的应用程序优化我们的构建过程。我想跳过后端的编译。dll文件应使用Netbeans Ant脚本更改文件时间戳。 我一直在使用Incremental and fast build using Ant和Advanced Free-form project configuration作为参考点,但似乎需要两个构建目标来创建。第一个链接中的时间戳比较
是否有一种方法可以避免需要2个目标并检查目标的时间戳。而不是dll文件?或者我只是需要在我的通话中添加另一个标签来进行比较,还是我试图做的不可行?
任何帮助都将不胜感激,或者如果知道更好的方法,我愿意倾听
我们使用Netbeans编译项目,默认情况下使用Ant。我已经包括了我身材的一小部分。xml Ant脚本到目前为止
提前谢谢
<target name="init-skip-dll" description="initializes the skip property for the Ada dll">
<uptodate srcfile="create-ada-dll.timestamp" targetfile="ada-dll.timestamp" property="ada-dll.skip" value="true" />
</target>
<target name="-build-dll" description="builds the Ada dll if needed" depends="init-skip-dll">
<exec executable="gprbuild.exe">
<arg value="-P"/>
<arg file="..\DLL\ifccs_dll.gpr"/>
</exec>
<touch file="create-ada-dll.timestamp"/>
</target>
# 1 楼答案
我不使用Ant,但Make也存在同样的问题;Ada依赖规则很复杂,最好是无条件地让gprbuild执行它需要的任何操作,以使DLL保持最新。如果DLL实际上是最新的,那么Gprbuild除了检查依赖项之外什么都不做
在Make中,这涉及到一个虚假的目标:例如,对于一个真实的目标
testbed
还是为了一个已经虚假的目标
顺便说一下,请注意
-p
,它表示要创建所需的目录,例如对象目录