您可以在独立模式下使用Apache/IVY。
http://ant.apache.org/ivy/history/latest-milestone/standalone.html
我需要强调“独立运行”模式。如果你在谷歌上搜索示例,你会发现很多不是独立运行的。
基本上,IVY就是这样工作的。
你发布二进制文件(或任何类型的文件,但从这一点开始我会说二进制文件)......作为小的二进制包。
以下是伪代码,请不要依赖我的记忆。
java.exe ivy.jar -publish MyBinaryPackageOne.xml --revision 1.2.3.4
(<<其中.xml指的是组成一个包的N个文件。)
“包”只是一组文件。你可以在一个包中包含.dll、.xml和.pdb文件(我用DotNet构建程序集时所做的)。或者其他什么。IVY对文件类型没有限制。如果你想把Word文档放在那里,你可以,但SharePoint更适合文档。
当你修复代码中的错误时,你会增加版本号。
java.exe ivy.jar -publish MyBinaryPackageOne.xml --revision 1.2.3.5
然后你可以从IVY中检索你想要的内容。
java.exe ivy.jar -retrieve PackagesINeed.xml
PackagesINeed.xml将包含您想要的软件包信息。
例如
“我想要版本为'1.2+的MyBinaryPackageOne”
(在xml中定义)
当您构建框架二进制文件时...您会发布到IVY。
然后,当您开发和构建代码时...您从IVY检索。
简而言之,IVY是一个文件存储库(不是源代码)。
然后,Ivy成为您的二进制文件的权威来源。
没有“嘿,开发者Joe有我们需要的二进制文件”之类的废话。
.......
优点:
1. 您不需要将二进制文件保存在源代码控制中(因此不会使您的源代码控制膨胀)。
2. 您只需拥有一个二进制文件的权威来源。
3. 通过 XML 配置,您可以指定库所需的版本。(例如,如果 MyBinaryPackageOne 的版本 2(2.0.0.0)已发布到 IVY(假设与 1.2.x.y 有不兼容的更改),则您可以在检索时(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年?)
在这一点上,微软落后了5-6年,我个人认为。
我永远不会回到把二进制文件放入源代码控制中。
IVY非常出色。它经过时间的考验。它解决了依赖关系管理的问题。
需要花费一点时间来适应它吗?
是的。
但最终它是值得的。
这是我的两分钱。
.................
但是第二个想法是学习如何使用NUGET与本地(即您公司的本地)存储库。
这与IVY大致相同。
但是经过研究NUGET后,我仍然喜欢IVY。