有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如果没有更改,java将跳过DLL编译

我正试图为我们的应用程序优化我们的构建过程。我想跳过后端的编译。dll文件应使用Netbeans Ant脚本更改文件时间戳。 我一直在使用Incremental and fast build using AntAdvanced 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) 个答案

  1. # 1 楼答案

    我不使用Ant,但Make也存在同样的问题;Ada依赖规则很复杂,最好是无条件地让gprbuild执行它需要的任何操作,以使DLL保持最新。如果DLL实际上是最新的,那么Gprbuild除了检查依赖项之外什么都不做

    在Make中,这涉及到一个虚假的目标:例如,对于一个真实的目标testbed

    testbed: force
            gprbuild -p -P testbed
    
    .PHONY: force
    

    还是为了一个已经虚假的目标

    all:
            gprbuild -p -P build_runtime.gpr
    
    .PHONY: all
    

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