Ant 如何仅保留最后5个版本的构建jar?
当我运行Ant构建时,我只想保留最后5个构建jar,并删除所有其他构建jar。请参阅以下文件的主要版本和次要版本 假设我的构建目录中有这些以前构建的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.
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已经有了基于发布号删除文件的功能。我想这符合你的要求。