2017-04-24 101 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已經具有基於版本號刪除文件的功能。我認爲這將符合您的要求。 –

相關問題