2014-09-12 66 views
1

最近,我需要作爲我的一些程序的依賴項目已經切換到提供補丁文件而不是實際的jar(法律原因)。 他們包括一個小工具,用於自動爲現有的罐子打補丁,並下載新的更新。Maven:下載文件並運行命令以建立依賴關係

我可以編寫一個自動下載和修補文件的小程序,我需要的只是告訴maven不要下載文件,而是運行一個命令,然後使用本地回購庫中的文件。

有沒有辦法做到這一點(也許使用自定義插件)?

+0

可能的重複[如何手動安裝jar到我的本地Maven存儲庫?](http://stackoverflow.com/questions/1871812/how-do-i-manually-install-a-jar-to- my-local-maven-repository) – Joe 2014-09-12 12:13:08

+0

那個不回答我的問題。我需要在下載依賴時運行它,否則我的IDE將返回錯誤,說它找不到依賴關係 – franga2000 2014-09-12 12:19:50

+0

您的組織是否維護本地maven存儲庫?如果是這樣,你可以把這些delta'd .jar文件放在那裏嗎? – orangepips 2014-09-12 12:24:22

回答

1

你可以編寫一個小型的ant任務運行該工具,並使用maven-antrun插件從你的maven版本中調用這個任務。

你也可以編寫你自己的maven插件,但對於這樣一個simle任務,我不會推薦它。

0

您的IDE找不到依賴項的原因是它不再發布(不是您尋求顯然的版本)。

構建工件並將其作爲@Joe本地安裝在本地,這是一個優雅的解決方案,可以從我的角度解決您的問題。 的好處是雙重的:

  1. 你的IDE能夠無縫地尋找失蹤的假象
  2. 你可以把這種依賴性的多個版本(一個用於每個新的修補程序),從而再現以前的(工作)建立的情況下,一個新的補丁打破了一些

如果你有一個本地存儲庫,它甚至會更好,因爲這會使所有團隊都可以使用依賴關係。

當然,您仍然需要一個工具來下載新補丁,應用它們並自動將生成的工件部署到存儲庫。但是,將其作爲一項單獨的任務提供給您可以使用的工具的更多靈活性。

+0

我現在正在使用這個,我只是想知道是否有一種方法只在maven需要依賴關係並且僅僅需要它的版本時才這樣做。這些都是每晚構建的,所以它們會很快耗盡我的磁盤空間。 – franga2000 2014-09-12 17:25:02