Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在apache ant中不存在pathelement时失败?_Ant - Fatal编程技术网

如何在apache ant中不存在pathelement时失败?

如何在apache ant中不存在pathelement时失败?,ant,Ant,我有一个很长的类路径,使用部分。在另一台机器上,很多罐子是不存在的。如何检查pathelements是否全部存在?使用: 缺少文件=>${toString:srcfileset} 仅回显/home/rosebud/temp/dir1中存在的所有文件 如果/home/rosebud/temp/dir1中的所有文件都出现在/home/rosebud/temp/dir2中,则文件集将为空 如果需要在缺少文件的情况下完成构建,请使用: <project> <fileset dir

我有一个很长的类路径,使用
部分。在另一台机器上,很多罐子是不存在的。如何检查pathelements是否全部存在?

使用:


缺少文件=>${toString:srcfileset}
仅回显/home/rosebud/temp/dir1中存在的所有文件
如果/home/rosebud/temp/dir1中的所有文件都出现在/home/rosebud/temp/dir2中,则文件集将为空

如果需要在缺少文件的情况下完成构建,请使用:

<project>
 <fileset dir="/home/rosebud/temp/dir1" includes="*.jar" id="srcfileset">
  <present present="srconly" targetdir="/home/rosebud/temp/dir2"/>
 </fileset>

 <fail message="Missing files => ${toString:srcfileset}">
  <condition>
   <resourcecount refid="srcfileset" when="greater" count="0" />
  </condition>
 </fail>
</project>


您是否考虑过使用常春藤来管理您的依赖关系?这样,您的构建就有了它所依赖的内容的记录,jar被拉下来(从Nexus?)并被每个构建机器缓存。依赖关系管理是一个Maven特性,可以构建到ANT构建中。你永远不会回头!考虑到我在一个非常慢的防火墙后面(即,中国各地的防火墙),下载单线程的速度非常慢。我需要使用像“axel”这样的下载加速器以合理的速度下载东西。另外,我只需要跨filewall下载每个文件一次。所以,不,maven不是一个真正的选项;-)Maven和/或Ivy镜像是解决您的问题的典型解决方案。使用像Nexus这样的Maven存储库管理器在防火墙的另一端缓存工件。Maven存储库中不可用的文件可以上载并存储在Nexus托管存储库中。最后,ANT的ivy插件了解Maven存储库,这意味着该解决方案适用于所有Java构建技术好的,好的,这不仅仅是关于防火墙,我还有一个到地理位置上的本地服务器的速度非常慢的网络连接,因此,服务器和我之间的任何复制都需要下载加速器。这将显示两个目录之间的差异。我已经可以用rsync得到这个了。但是我的jar位于不同的目录中,并且目录非常满,所以镜像目录不是一个解决方案。在别人说之前,将所有JAR放在一个目录中也不是我要寻找的解决方案;-)如果在所有这些目录中使用类似的directorystructure,那么在调整fileset!的includes属性时,它应该会起作用!?基本上我需要这样的东西:for(jarpath:classpathrefid){if(!new File(jarpath).exists){throw new RuntimeException();}(当然,只有在ant xml中)。
<project>
 <fileset dir="/home/rosebud/temp/dir1" includes="*.jar" id="srcfileset">
  <present present="srconly" targetdir="/home/rosebud/temp/dir2"/>
 </fileset>

 <fail message="Missing files => ${toString:srcfileset}">
  <condition>
   <resourcecount refid="srcfileset" when="greater" count="0" />
  </condition>
 </fail>
</project>