Java 用丢失的文件更新目标目录并重新设置属性
我一直在尝试让下面的内容在ant中工作,但未能成功 在这个场景中,我希望能够根据源目录中的任何文件是否被复制到目标目录,设置一个用于检查的属性。对于空的目标目录、源文件的较新版本以及源目录中不在目标目录中的较新文件,应该是这样 我的prototype build.xml文件如下所示:Java 用丢失的文件更新目标目录并重新设置属性,java,ant,Java,Ant,我一直在尝试让下面的内容在ant中工作,但未能成功 在这个场景中,我希望能够根据源目录中的任何文件是否被复制到目标目录,设置一个用于检查的属性。对于空的目标目录、源文件的较新版本以及源目录中不在目标目录中的较新文件,应该是这样 我的prototype build.xml文件如下所示: <?xml version="1.0"?> <project name="build01" default="make.obj"> <property name="src.dir
<?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>
.
+ 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>
如果目标存在且比源更新,则设置属性。为了澄清,以下内容始终返回true
<target name="make.final">
<echo message="Inside make.final"/>
<uptodate property="copy.notneeded">
<srcfiles dir="src" includes="file01.txt"/>
<mapper type="glob" from="src/*" to="obj/*"/>
</uptodate>
<echo message="copy.notneeded=${copy.notneeded}"/>
</target>
无论obj目录是否存在,或者src中的所有文件是否已经存在于obj中
我还尝试过用“regex”替换“glob”,但似乎也不起作用。我尝试过各种任务,但我没有什么工作要做。我想我可以使用and来检查哪些源文件比等效的目标文件更新,但我无法让它工作。我知道单个targetfile属性是有效的,但尽管本例重点关注创建ISO,但在能够构建目标文件和源文件之间具有依赖关系的ISO之后,我还有其他事情要做。所以,你真的想用它来比较源和目标。也许你可以用一个更具代表性的例子来更新你的问题?我想也许能帮你,但我不完全明白你需要什么。