2013-04-14 49 views
2

我有一些GitHub上託管的小型開源項目,我希望通過Maven爲其他人提供這些項目。我有一個小型網站,我可以託管靜態文件。我如何創建回購?另外,如果可能的話,我想從那裏刪除舊的快照。如何在沒有Nexus的情況下託管Maven repo

+0

你是什麼意思「沒有Nexus」?要[設置Maven回購](http://www.theserverside.com/news/1364121/Setting-Up-a-Maven-Repository)您必須擁有*存儲庫管理系統(標準,DMSP,Proximity,Artifactory ,Nexus)? – linski

+0

另外,一個*遠程內部Maven倉庫*(這是你想要設置,如果我正確理解)實現幾乎所有的Tomcat應用程序。換句話說,只有靜態Web訪問才能託管Maven回購。 – linski

+0

是的,我的意思是一個靜態存儲庫。雖然我有點困惑,爲什麼沒有靜態存儲庫軟件,謝謝你的答案。 – Scott

回答

0

我想我現在知道如何去做。我現在使用mvn deploy在文件系統上創建本地存儲庫,然後將其上載到網絡服務器。如果我沒有錯,甚至不需要成爲文件列表。

我使用的命令是:

mvn deploy -DaltDeploymentRepository=local::default::file:./repo

這將創建/自動更新本地資源庫,因此回購可以與服務器同步。

3

Standard maven repository實現幾乎都是Tomcat的web應用程序。它們中的每一個都應該有一個靜態存儲庫,就像您的local repository一樣。 webapp用於搜索和管理存儲在該靜態存儲庫中的工件。

如果您希望僅以靜態Web訪問存儲庫,則必須手動執行管理,並提供一個靜態手動生成的html頁面,其中包含回購庫中所有工件的GAV coordinates。除非您提供密碼或啓用匿名FTP訪問權限,否則沒有其他用戶可上傳到存儲庫。

如果maven沒有嘗試上傳任何內容到回購庫,直到deploy階段,那麼這種方法仍然部分可用,因爲運行mvn clean deploy應該失敗。

您可以檢查是否是可行的這樣的(我想你必須在你的本地回購項目):

  • 上傳本地repoistory文件夾到一個URL
  • 測試鏡的目的您的中央回購該URL
  • 嘗試從您的回購建立與依賴你的項目

打開settings.xml文件,並下<mirrors>節點添加:

<mirror> 
    <url>http://your/url/repo</url> 
    <mirrorOf>*</mirrorOf> 
</mirror> 

並查看mvn clean install是否成功。請反饋。

2

在這個SO answer中,我概述了我設置所有託管在Github中的OSS項目的方式。實際上,當您想要運行OSS項目時,您可以獲得許多免費服務。

如果您的插件經過充分測試並預計會給其他人帶來好處,我會建議發佈到Maven Central。您可以使用CloudBee的BuildHive作爲免費的Jenkins CI。

0

根據我的經驗,靜態回購非常有效。

我把我的本地資源庫放到了一個靜態的apache服務器上。合法回購。如果你已經有了一個普通的香草網絡主機,那麼當然不像維護真正的回購一樣容易,但要便宜得多。

除了正確設置權限(與瀏覽文件夾所需的相同)之外,這是一個非常輕鬆的過程。

我爲了使它更加合理而做的唯一兩件事是 1 - 在本地回購的大部分內容上寫了一個腳本爲「rm -rf ....」,以便我部署的唯一內容是那些在通用回購中不可用的那些少量文物。 2 - 在搜索到我的虛擬主機之前首先關注它。

希望這會有所幫助。

下面的人做了類似的事情,只使用FTP,如果他經常更新他的二進制文件,可以爲他節省大量的手工工作。

http://stuartsierra.com/2009/09/08/run-your-own-maven-repository

相關問題