您可以在獨立模式下使用Apache/IVY。
http://ant.apache.org/ivy/history/latest-milestone/standalone.html
我需要強調的 「獨立」 模式。如果你是谷歌的例子....你會發現很多(不是獨立的)。
基本上,IVY基於這個前提。
您發佈二進制文件(或任何類型的文件,但我會說,從這一點來說,二進制文件)......作爲小二進制包。
下面是PSEUDO代碼,不要依賴我的記憶。
java.exe ivy.jar -publish MyBinaryPackageOne.xml --revision 1.2.3.4
(< <其中將.xml指N個文件組成一個包。))
「包」僅僅意味着一組文件。你可以在一個包中包含.dll和.xml以及.pdb文件(我使用DotNet構建的程序集)。管他呢。 IVY是文件類型不可知的。如果你想把WordDocs放在那裏,你可以,但是sharepoint對文檔更好。
當您對代碼進行錯誤修復時,您會增加修訂版本。
java.exe ivy.jar -publish MyBinaryPackageOne.xml --revision 1.2.3.5
再後來,你可以從IVY獲取你想要的東西。
java.exe ivy.jar -retrieve PackagesINeed.xml
PackagesINeed.xml將包含有關所需軟件包的信息。
像 「我希望MyBinaryPackageOne的版本「1.2+」 (定義在XML中)
在構建框架的二進制文件......你發佈到IVY。 然後,當你開發和建立你的代碼...你從IVY中檢索。
在NUTSHELL中,IVY是FILES的存儲庫(不是源代碼)。
常春藤然後成爲您的二進制文件的權威來源。
沒有一個「嘿,開發人員 - 喬有我們需要的二進制文件」有點混亂。
.......
優點:1。 你不要讓你的二進制文件的源代碼控制。 (並且因此不會BLOAT您的源代碼管理)。 2.您有一個明確的二進制文件來源。 3.通過xml配置,您可以說出庫需要哪些版本。 (在上面的例子中,如果MyBinaryPackageOne的版本2(2.0.0.0)發佈到IVY(讓我們假設破壞1.2.xy的更改)...那麼你沒問題,因爲你在你的retrieve(xml配置文件)...。那你只需要「1.2+」因此,你的項目將忽略任何2 + ...除非你改變了配置包
高級:。 如果你有一個構建機器(CruiseControl.NET例如)....你可以編寫邏輯在每次構建之後發佈你的(新建的)二進制文件到IVY (這是我所做的)。
我使用SVN修訂版作爲內部版本號中的最後一個數字。 如果我的SVN版本是「3333」,那麼我會跑是這樣的:
java.exe ivy.jar -publish MyBinaryPackageOne.xml --revision 1.2.3.3333
因此每當檢索包修訂「1.2.3+」 ....我會得到最新建立。 在這種情況下,我會得到包的版本1.2.3.3333。
很遺憾,IVY是在2005年開始的(好吧,這是個好消息)......但是NUGET直到2010年纔出來? (2011?) 微軟在這一個IMHO上落後5-6年。
我永遠不會回到將二進制文件放在源代碼控制中。
IVY非常好。這是時間證明。它解決了依賴管理的問題。
是否需要一點時間才能適應它?是的。
但它最終值得。
我的2美分。
.................
但想法#2是 瞭解如何使用的NuGet與本地(如in..local貴公司)倉庫。
這和IVY差不多。
但看了NUGET,我還是喜歡IVY。
共享庫現在經常變化,這就是爲什麼我們不能使用它們作爲svn外部的主幹,因爲我們可能會在分支中改變它們。所以我們不能將它們用作二進制引用。 – sontek 2009-12-14 19:29:11
如果要添加到共享庫中,我會將新代碼放入分支中的應用程序中,然後僅在其他應用程序需要時纔將其移至共享庫。在應用程序中進行開發直到完全測試,然後僅在需要時纔將其展示給其他應用程序。 可能不應該更改錯誤修復以外的共享庫 - 現有類/方法的功能/接口通常應該保持不變。打開/關閉原則 - 增加功能,不改變現有。 – 2009-12-14 19:36:18
這些共享庫是我們應用程序的核心,如果發現錯誤或出現新功能,它需要更改。 例如,其中一個共享庫是兩個應用程序中使用的一些asp.net用戶控件,因此最近我重新設計了信用卡/付款控制以添加付款計劃功能(付款計劃是一項新的業務需求)。我顯然不想改變主幹中的付款控制,因爲這會干擾所有人的工作。所以我需要分支,直到我得到它的工作,然後將它合併回主幹。 – sontek 2009-12-15 03:14:00