2011-06-24 56 views
6

Git顯然非常棒,各種客戶端都可用並且易於安裝在所有平臺上。如何將Git服務器編寫或打包爲Java Servlet或Java Web應用程序?

然而,讓Git服務器啓動並運行給團隊是一個挑戰。

我有點驚訝,還沒有一個易於部署的Java-Git應用服務器或webapp。看起來Gitosis,Gitolite等是在其他堆棧上運行的一些選項,但是如果您已經在運行Java堆棧,那麼部署Java servlet或webapp將是最簡單的。

沿着這些路線,我想知道如何編寫一個Java'Git Server'webapp?

JGit能爲您實現一個簡單的實現嗎?將JGit作爲一個Web應用程序進行打包以便能夠推送/取出並從中輕鬆創建新的回購站,需要做些什麼?

+0

@Brendan嗨,你有沒有想過使用ssh作爲git的服務器?這很方便,你只需要一些Linux服務器,我想每個人都可以使用便宜的雲託管 - 這比在Windows上運行更好。在java中編寫git服務器可能是一個具有挑戰性的項目 – Vladimir

+0

嗨弗拉基米爾,感謝您的建議。是的,這是針對那些沒有在雲中託管並且防火牆被鎖定的組織(至少現在是這樣) - 我認爲絕大多數組織都不會將其源代碼發佈到雲端。另外不幸的是,很多DO組織在他們的堆棧中使用了窗口,這解決了這個問題。我知道從頭開始在java中實現一個git服務器會有很多工作,但我認爲JGit已經完成了很多所需的工作。但是我正在尋找關於如何將JGit作爲web應用程序公開的細節的指導。 – Brendan

+0

「暴露了JGit(或Git)」,因爲webapp本身並沒有太多的價值。 Git中的「web」部分僅用於身份驗證。它可以是sshd,也可以是httpd,但除此之外,它只需將它們傳遞給Git本身,或者傳遞給像Gitolite這樣的授權包。無論如何,JGit都不會參與其中。一個簡單的「智能http」cgi(與Git一起打包)就足夠了。另見http://stackoverflow.com/questions/5683253/distributed-version-control-systems-and-the-enterprise-a-good-mix/5685757#5685757 – VonC

回答

3

Gerritt可部署爲war文件並使用JGit提供git服務器功能。除了標準的git服務器功能外,還支持訪問控制和代碼審查。

+0

謝謝!我沒有意識到Gerritt是一個Git服務器,我認爲這只是代碼審查,必須與Git服務器結合使用。 – Brendan

6

SCM-Manager是一個用Java編寫的Git服務器,使用JGit

+1

哦,謝謝!我沒有在我的搜索中找到。非常感激!! – Brendan

+0

我從http://www.scm-manager.org/download-action/?download=scm-server/1.32/scm-server-1.32-app.zip下載了scm-server-1.32-app.zip,但它似乎成爲以前的版本,例如提交列表是白色的HTML,就像在實驗室中由學生完成一樣。 –

+0

我認爲你有正確的版本,但你正在查看一個git倉庫的直接視圖,它只顯示最後幾個提交。如果你想要漂亮的提交視圖,你必須從網格中選擇存儲庫並點擊頁面底部的提交。我想我會從存儲庫URL重定向到下一個版本中的這個頁面。 – sdorra

4

Gitblit是一個開源的,集成的純Java Git服務器,查看器和倉庫管理器,適用於小型工作組。它在Windows上運行良好,幷包含可作爲Windows服務運行的工具。

-1

在JGit庫中有一個智能Http的實現名爲GitServlet。您可以使用以下配置將其嵌入到基於Java的Web應用程序中。

對於配置請參考:

http://www.jarvana.com/jarvana/view/com/madgag/org.eclipse.jgit.http.server/0.8.3-UNOFFICIAL-HARMONY-6637-FIX/org.eclipse.jgit.http.server-0.8.3-UNOFFICIAL-HARMONY-6637-FIX-javadoc.jar!/org/eclipse/jgit/http/server/GitServlet.html

+0

提供鏈接沒有意義,好像鏈接無效答案丟失。當前鏈接不可訪問。 – Sohan

相關問題