gpt4 book ai didi

java - 如果没有更改则跳过 DLL 编译

转载 作者:行者123 更新时间:2023-11-30 05:54:32 26 4
gpt4 key购买 nike

我正在尝试优化我们这里的应用程序的构建过程。如果使用 Netbeans Ant 脚本文件时间戳没有更改,我想跳过后端 .dll 文件的编译。我一直在使用Incremental and fast build using AntAdvanced Free-form project configuration作为引用点,但似乎需要 2 个构建目标才能在第一个链接中创建 .timestamp 比较。

有没有办法避免需要 2 个目标并检查 .dll 文件的时间戳?或者我是否只需要在调用中添加另一个标签来进行比较,或者我想要做的事情不可行?任何帮助将不胜感激,或者如果知道更好的方法,我愿意倾听。
我们使用Netbeans来编译我们的项目,并默认使用Ant。到目前为止,我已经包含了 build.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>

最佳答案

我不用Ant,但Make也存在同样的问题; Ada 依赖关系规则很复杂,最好的处理方法是无条件地让 gprbuild 执行其需要的任何操作以使 DLL 保持最新状态。如果 DLL 实际上是最新的,Gprbuild 除了检查依赖关系之外不会执行任何操作。

在 Make 中,这涉及到一个虚假目标:例如对于真正的目标测试床

testbed: force
gprbuild -p -P testbed

.PHONY: force

或者对于已经是虚假的目标

all:
gprbuild -p -P build_runtime.gpr

.PHONY: all

顺便说一下,请注意-p,它表示创建所需的目录,例如对象目录。

关于java - 如果没有更改则跳过 DLL 编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53397157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com