2017-04-24 58 views
1

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

假设我有我的生成目录中的这些先前建立的罐子:

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构建文件来完成吗?

回答

1

下面将删除旧文件,保持最近5:

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

一个更完整的解决方案将发布的文物到专用仓库管理器,而不是建立自己的。

例如,如果您选择使用Nexus,它有一个名为“删除发布从系统信息库”,将基于语义版本规则删除旧版本的计划任务:

+0

感谢@标记奥康纳的答案。 我想按文件名而不是日期排序文件。 对于egtest-1.0.0.jar && test-1.0.1.jar test-1.0.0.jar是旧的,test-1.0.1.jar是新的 –

+0

除了这个答案,如果你想使最后的构建计数可配置,那么你也可以在构建文件中的属性文件和导入属性文件中指定计数值。 – Maverick

+0

@Maverick ANT是一个构建工具。我强烈建议使用像Nexus这样的存储库管理器产品来管理发布工件的存档规则。如果您按照关于您的链接发现Nexus已经具有基于版本号删除文件的功能。我认为这将符合您的要求。 –

相关问题