2010-04-11 39 views
2

我想在我的項目中使用Java庫。我的項目使用Maven來引入依賴關係,除了這個庫之外,它對任何事情都很有用。問題是,這個庫從來沒有發佈。作者在Subversion版本庫中維護源代碼,並僅對trunk進行更改。使用Maven從Subversion中的源代碼構建JAR

有沒有一種方法可以讓我從Subversion根據其POM

  • 使用告訴Maven來

    1. 更新(或查看)庫的源代碼樹
    2. 構建它產生的罐子作爲依賴這個項目
    3. 定期(可能在每個版本)
    4. 獎勵積分做到這一點,這標誌該庫我想用
    5. 的Subversion修訂

    謝謝!

  • 回答

    0

    如果你不控制某些東西,你不能控制它。所以我想:

    • 結帳從該項目回購
    • 來源把他們的版本控制下您的VCS
    • 構建一個版本(和您的VCS標記庫)
    • 分配通過公司存儲庫發佈的神器

    你不是真的想自動化這比這更多(如果作者提交的東西會破壞你的代碼,如果您需要修復已發佈版本的代碼中的錯誤但不能使用完全相同的庫)。將其置於源代碼管理之下並自行管理髮布。

    +0

    這聽起來像是明智的做法。你可以單獨維護還是作爲子模塊使用? – Anonymoose 2010-04-12 04:39:26

    +0

    @Anonymouse另外。你不需要把它作爲你的項目的一部分來構建,它會讓事情變得緩慢。只需使用二進制依賴項(在jar上)。 – 2010-04-12 04:47:16

    0

    豈不更加簡單而有效的解決方案如下所示:

    • 你寫的檢查出來的源shell腳本/ bat文件,構建神器,並部署到下一個maven回購您的控制。
    • 使用快照依賴關係,您將在工件中獲得一個時間戳,確保您的項目的每個構建都使用工件最新版本,並且不必更新項目的pom.xml。
    • 您可以在項目的pom.xml中使用ant任務,該任務將掛鉤到項目構建週期並執行構建和部署工件的shell腳本。
    0

    做開源的東西:

    您可以聯繫庫的作者。我敢打賭,他很樂意得到一些反饋。 讓他知道你需要什麼,他可能會這樣做。或者提供幫助,使圖書館變得容易或幫助發佈。 這樣其他用戶也可以獲利。

    作爲一些開源項目的開發者,我喜歡這種反饋。

    0

    您可以嘗試使用持續集成解決方案Hudson及其Subversion Plug-in定期檢出源代碼。

    Hudson成功檢出源代碼後,可以運行修改後的Ant script來構建源代碼並將其部署到本地/遠程Maven存儲庫。

    0

    爲了獲得可重複的構建,我建議您自己檢查並構建開源項目並將其安裝到Maven存儲庫。這樣,您可以參考POM中的特定版本,因此您的構建將始終可重現。