gpt4 book ai didi

java - 更新丢失文件的目标目录并设置属性

转载 作者:行者123 更新时间:2023-11-30 07:56:59 25 4
gpt4 key购买 nike

我一直在尝试让以下内容在 ant 中工作,但未能成功。

在这种情况下,我希望能够设置一个属性,以便根据是否将源目录中的任何文件复制到目标目录中来进行检查。对于空目标目录、较新版本的源文件以及源目录中不在目标目录中的较新文件来说,情况应该如此。

我的原型(prototype) build.xml 文件如下:

<?xml version="1.0"?>

<project name="build01" default="make.obj">
<property name="src.dir" value="${basedir}/src"/>
<property name="obj.dir" value="${basedir}/obj"/>
<fileset id="src.files" dir="${src.dir}"/>

<target name="make.obj" depends="check.make.obj" unless="make.obj.notneeded">
<copy todir="${obj.dir}">
<fileset refid="src.files"/>
</copy>
<property name="do.something.else" value="true"/>
</target>

<target name="check.make.obj">
</target>

<target name="make.final" depends="make.obj" unless="do.something.else">
<exec executable="mkisofs">
<arg value="-o"/>
<arg value="foo.iso"/>
<arg value="obj"/>
</exec>
</target>
</project>

我的原型(prototype)构建目录最初如下所示:

.
+ build.xml
+ obj
+ src
+ file01.txt
+ file02.txt

在初次调用 ant 后,我​​想看到以下内容:

.
+ build.xml
+ foo.iso
+ obj
| + file01.txt
| + file02.txt
+ src
+ file01.txt
+ file02.txt

如果我再次运行 ant,而不进行任何更改,我不希望 ant 更新 obj 目录或重新制作 foo.iso。

如果我更新 src/file01.txt、src/file02.txt 或添加文件(例如 src/file03.txt),我希望 ant 更新 obj 目录,并且希望 ant 重新制作 foo.iso。

我尝试了不同的任务,但我无法让任何事情正常工作。

有什么建议吗?

最佳答案

替换这个:

<property name="do.something.else" value="true"/>

这样:

<uptodate targetfile="foo.iso" property="do.something.else">
<srcfiles dir="${obj.dir}"/>
</uptodate>

<uptodate> 如果目标存在并且比源更新,则设置一个属性。

关于java - 更新丢失文件的目标目录并设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32532541/

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