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
Ant 如何仅保留最后5个版本的构建jar?_Ant_Build.xml - Fatal编程技术网

Ant 如何仅保留最后5个版本的构建jar?

Ant 如何仅保留最后5个版本的构建jar?,ant,build.xml,Ant,Build.xml,当我运行Ant构建时,我只想保留最后5个构建jar,并删除所有其他构建jar。请参阅以下文件的主要版本和次要版本 假设我的构建目录中有这些以前构建的JAR: test-1.0.0.jar test-1.0.1.jar test-1.0.2.jar test-1.0.3.jar test-1.0.4.jar test-1.0.5.jar test-1.0.6.jar 当我运行下一个构建时,效果应该是这样的: test-1.0.0.jar -- Deleted test-1.0.1.

当我运行Ant构建时,我只想保留最后5个构建jar,并删除所有其他构建jar。请参阅以下文件的主要版本和次要版本

假设我的构建目录中有这些以前构建的JAR:

test-1.0.0.jar 
test-1.0.1.jar 
test-1.0.2.jar 
test-1.0.3.jar 
test-1.0.4.jar 
test-1.0.5.jar 
test-1.0.6.jar 
当我运行下一个构建时,效果应该是这样的:

test-1.0.0.jar -- Deleted
test-1.0.1.jar -- Deleted
test-1.0.2.jar -- Deleted

test-1.0.3.jar -- No change
test-1.0.4.jar -- No change 
test-1.0.5.jar -- No change 
test-1.0.6.jar -- No change
test-1.0.7.jar -- No change
这意味着我只想保留最新的5个版本(基于次要版本),并删除所有其他版本

请注意,这里的最新版本是根据构建jar次要版本确定的


这可以使用Ant构建文件完成吗?

以下内容将删除旧文件,保留最新的5个文件:

<delete>
  <allbutlast count="5">
    <sort>
      <date/>
      <fileset dir="target" includes="*.jar"/>
    </sort>
  </allbutlast>
</delete> 

,它有一个名为“从存储库中删除版本”的计划任务,该任务将根据语义版本控制规则删除旧版本:


谢谢@mark O'Connor的回答。我想按文件名而不是日期对文件进行排序。例如,test-1.0.0.jar&&test-1.0.1.jar test-1.0.0.jar是旧的,test-1.0.1.jar是新的。除此之外,如果您想配置上次生成计数,还可以在属性文件中指定计数值,并在生成文件中导入属性文件。@Maverick ANT是一个生成工具。我强烈建议使用Nexus之类的repository manager产品来管理发布工件的归档规则。如果你点击关于的链接,你会发现Nexus已经有了基于发布号删除文件的功能。我想这符合你的要求。