2012-07-22 12 views
0

我想設置maven模塊中的類和資源的時間戳,就在它被構建到jar之前。 我想我可以使用maven-antrun-plugin,但我想看看是否有更好的想法。maven set class打包jar之前的時間戳

有沒有人有想法?

讓我爲我需要這個功能添加更多細節。

當我們爲該產品構建一個新版本時,我們還構建了一個補丁安裝,它將以前版本的所有工件與當前版本進行比較,只打包不同的版本。可以有相同的內容,但類和資源的時間戳是元數據的一部分,並且導致diff顯示不同的jar(實際上,內容是相同的)。我想破解這個jar打包,並將所有類的時間戳設置爲常量(比如1/1/2000 00:00)。

我希望這能解釋我的需要。

+0

你能詳細闡述一下你喜歡做什麼嗎? – khmarbaise 2012-07-23 06:51:44

回答

0

我只是想和大家分享我決定做。

我不會觸及maven構建,讓它像以前一樣構建罐子。

我所做的是在我的構建中實現一個腳本來比較罐子。這個腳本的邏輯很簡單:

  • 檢查參數(罐存在)
  • 提取罐到一個臨時文件夾(一個獨特的名字)
  • 在這兩個文件夾運行差異
  • 清理
  • 退出時帶有相關的退出代碼(如果相同,則返回0,如果不同則返回1)

我希望這很有用。

1

好,最好的解決辦法是,以適應你的工具,計算DIFF去看看在罐子更​​深;)

恐怕沒有其他方式比使用一個Ant文件與touch任務重置文件日期。沒有設置文件日期的現有插件。

你也可以寫你自己的Maven插件,並回饋社會,但它可能是一個有點矯枉過正...

HIH M.

+0

我實際上已經嘗試過這種方法,但似乎在我「觸摸」這些類後生成了MANIFEST,所以該jar仍然標有不同的二進制數據......有沒有辦法控制MANIFEST的時間戳? – 2012-07-23 19:32:23