GitHub中的Jar依赖项

时间:2014-06-05 19:59:33

标签: java git github jar dependencies

我在GitHub上设置了一个新的Java项目,并且我将一些Apache Commons个库作为依赖项。

确定我的项目需要那些jar文件的最佳做法是什么?我应该将依赖项上传到我的GitHub存储库(丑陋)吗?还是use a Maven-like tool for that

或者有没有办法在另一个git存储库中链接文件? Apache provides git repositories for they libraries。它们是只读的,但我是o.k.因此,我只想使用罐子。坏的是它们包含所有的来源,我只关心编译的jar。 It seems我们无法git submodule只是一个文件。

1 个答案:

答案 0 :(得分:5)

这两种方法是:

  • 声明性基于组件的,您声明(描述)项目所需的组件(jar,exe,其他二进制文件)(编译) ,执行,部署等),并使用第三方工具(如Maven / Nexus )来按需提供这些组件。
    因此,它们不会在您的仓库中进行版本控制。它们被声明/描述(如果你使用Nexus,就像在pom.xml中一样)
    另请参阅“Difference between Git and Nexus?”。

  • 包容性基于系统的,您可以使用其他项目源/二进制文件完成项目,以便在您的回购后立即获取所需内容克隆步骤(无需调用第三方工具或执行任何操作:系统中的每个其他部分都在其中) 使用Git,特别是如果那些“其他部分”在git仓库中(如apache libs one),那么您可以将这些子仓库声明为主仓库的 submodules
    这样,您在主仓库中保留的只是special entry (gitlink, mode 160000)引用另一个仓库的特定SHA1(但您可以将其设为submodule follow a branch too,有点像svn external)。
    使用sparse checkouts in submodules(如在this example中),您甚至可以为这些模块更新这些模块,只检查您想要的回购部分(例如只是罐子,而不是来源)。

请注意,您不应该在GitHub仓库中存储您将生产的任何交货(如您自己的罐子)。

您可以将这些投放与 GitHub releases 相关联。