Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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
Java 如何确定Ivy retrieve任务是否更新了我的lib文件夹中的任何依赖项?_Java_Ant_Ivy - Fatal编程技术网

Java 如何确定Ivy retrieve任务是否更新了我的lib文件夹中的任何依赖项?

Java 如何确定Ivy retrieve任务是否更新了我的lib文件夹中的任何依赖项?,java,ant,ivy,Java,Ant,Ivy,我有一个Ant构建,我只想在工件的依赖项被更新时重建它 对于外部依赖项,这很容易,因为我可以将ivy.xml的更改日期与工件的创建日期(使用Update)进行比较。但这不适用于我使用latest.release定义依赖项修订版的内部依赖项。像这样: <dependencies> <dependency org="se.woop" name="thelibrary" rev="latest.release" co

我有一个Ant构建,我只想在工件的依赖项被更新时重建它

对于外部依赖项,这很容易,因为我可以将
ivy.xml
的更改日期与工件的创建日期(使用Update)进行比较。但这不适用于我使用
latest.release
定义依赖项修订版的内部依赖项。像这样:

<dependencies>
    <dependency org="se.woop" name="thelibrary" rev="latest.release" conf="default->*"/>
</dependencies>
问题是,
uptodate
函数将与库文件夹中工件的更改日期进行比较。但是,当文件复制到库文件夹(通过Ivy)时,更改的日期不会更新,但创建的日期会更新

所以。。。是否可以将
最新版本
与创建日期进行比较?或者在将依赖项移动到库文件夹时,是否可以让Ivy更新更改的日期?或者它是另一个可用的解决方案?

“我有一个Ant构建,我只想在其依赖项更新时重建工件。”停止检查版本

“问题是Update函数与库文件夹中工件的更改日期进行比较。”完全停止使用该函数

“或者它是另一种可用的解决方案?”是的

每次您的程序访问工件时,请稍后再使用它,当它不再需要该工件时,复制该工件,然后将该副本保存为具有计数编号的新工件。如下所示:访问工件_0001,然后在不再需要时使用,新工件_0002保存在库文件夹中。然后删除工件_0001。如果需要在程序外部或内部编辑工件_0002

每次程序运行时,检查工件\u xxxn是否存在,每次检查一个n,直到找到确实存在的工件,然后尝试访问该工件。在xxxx计数的情况下,让它尝试访问工件[xxxx],如果它无法访问工件[U xxxn],则它尝试访问工件[U 000[n+1]等。当计数达到某个数字时,在计数中返回到0或1,然后重新开始。记住,只需在整个n范围内运行两次,即可停止潜在的无止境循环。如果整个artifact\u 000n范围检查了两次,但没有任何内容,那么就创建一个artifact\u默认值,该默认值仅用于让程序运行,当它运行时,会显示一个通知,说明正在使用artifact\u默认值,以便您知道如何修复它

这应该是一个跨语言的解决方案

<uptodate targetfile="build/artifacts/theclient.jar" property="artifact.uptodate">
   <srcfiles dir= "src" includes="*"/>
   <srcfiles dir= "lib" includes="*"/>
   <srcfiles dir= "." includes="ivy.xml"/>
</uptodate>