Apache常春藤:我把所有这些JAR放在哪里?

我试图说服我的工作地点的上级移植到Apache Ivy。 我已经设法使用常春藤来开发一些沙箱项目来为构build提供支持,现在我已经有了一个绿灯来整合一个迁移build议。

我们都同意一件事情:我们不想相信位于公共目录的JAR! 我知道,我知道,有点偏执,是的。 但是我们希望有一个设置,让我们从可信来源(从开源项目本身,或者最有可能的是,一口吞下公共资源)下载一个JAR,然后使用它一段时间,然后才能“ authentication “(把它作为我们祝福的安全工具)。

然后,我们希望为我们的许多项目使用的所有JAR都有一个公共存储库。

我原来的想法是把这个仓库放在版本控制(我们有一个SVN服务器)。 但我不确定最佳做法是什么。 将我们的JAR放在一个文件服务器上,并在Ivy脚本中将它们传给FTP,可能会更有意义。

无论哪种方式,SVN(HTTPS)或FTP,我们所有的服务器都经过authentication。 所以,有一些问题:

  1. 我们应该在哪里发布我们所有的“authentication”JAR(从`log4j`到我们生产的任何本地JARs的所有内容)? 最佳实践是什么决定的?
  2. “ivyrep”parsing器types不采用用户名或passwd atrributes。 如果我们的“JAR服务器”(FTP,SVN等)通过身份validation,如何configurationIvy脚本来login?

为什么不使用类似Sonatype的Nexus 。 我已经看到它用于Maven,我相信它会适用于常春藤。

您可以将其设置为从远程存储库下载到(例如)“测试”存储库。 然后,您可以评估这些.jar,如果它们是好的,请将其上传到“已批准”的存储库供一般使用。 有一些认证围绕这一点,但你必须更深入地评估。 当然,您可以通过用户名/密码对将上传限制在存储库中。

我必须回应Brian建议使用像Nexus这样的资源库管理器。 从长远来看,这是少得多的工作。 您还会发现Nexus的专业版本可以让您创建计划在构建中使用的存储库的审批流程。 请参阅采购套件功能。

另一方面,如果你决定建立你自己的仓库,那么常春藤有工作的工具。 你需要变得非常熟悉常春藤设置文件,以及它如何声明和使用解析器 。

如果可通过HTTPS访问存储库,那么url解析器应该能够访问它。 解析器会假设每个版本的工件都在不同的目录中,您需要指定访问资源库时需要使用的URL模式:

<url name="two-patterns-example"> <ivy pattern="http://ivyrep.mycompany.com/[module]/[revision]/ivy-[revision].xml" /> <artifact pattern="http://ivyrep.mycompany.com/[module]/[revision]/[artifact]-[revision].[ext]" /> </url> 

该模式对于如何存储工件完全灵活。

身份验证也使用凭证标记在设置文件中处理。

最后还支持FTP协议。 在doco中很难找到,但是它是由vfs解析器支持的。

我认为这是关于我不建议的选项的足够的信息:-)话虽如此,我曾经创建了一个基于FTP的存储库来管理客户端的版本。 有一个强大的工具是有用的:-)