作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试优化我们这里的应用程序的构建过程。如果使用 Netbeans Ant 脚本文件时间戳没有更改,我想跳过后端 .dll 文件的编译。我一直在使用Incremental and fast build using Ant和 Advanced 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/
我是一名优秀的程序员,十分优秀!