Java GitHub中的Jar依赖关系

Java GitHub中的Jar依赖关系,java,git,github,jar,dependencies,Java,Git,Github,Jar,Dependencies,我正在上设置一个新的Java项目,我将有一些库作为依赖项 确定我的项目需要这些jar文件的最佳实践是什么?我是否应该将依赖项上载到GitHub存储库(丑陋)?还是 或者有没有办法将文件链接到另一个git存储库。它们是只读的,但我同意,因为我只想使用罐子。糟糕的是,它们包含所有源代码,而我只关心编译后的jar。我们不能将git子模块仅仅作为一个文件。这两种方法是: 声明性的和基于组件的,其中您声明(描述)项目需要(编译、执行、部署等)哪些组件(JAR、exe和其他二进制文件),并使用第三方工具(

我正在上设置一个新的Java项目,我将有一些库作为依赖项

确定我的项目需要这些jar文件的最佳实践是什么?我是否应该将依赖项上载到GitHub存储库(丑陋)?还是


或者有没有办法将文件链接到另一个git存储库。它们是只读的,但我同意,因为我只想使用罐子。糟糕的是,它们包含所有源代码,而我只关心编译后的jar。我们不能将git子模块仅仅作为一个文件。

这两种方法是:

  • 声明性的和基于组件的,其中您声明(描述)项目需要(编译、执行、部署等)哪些组件(JAR、exe和其他二进制文件),并使用第三方工具(如Maven/)根据需要提供这些组件。
    因此,它们在您的回购协议中没有版本控制。它们是声明/描述的(如在pom.xml中,如果要使用Nexus)
    另见“”

  • 包括基于系统的,您可以使用其他项目源/二进制文件完成项目,以便在克隆步骤后立即在repo中获得所需的一切(无需调用第三方工具或执行任何操作:系统的其他部分都在其中)。
    使用Git,特别是如果这些“其他部分”在Git回购中(如),那么您将宣布这些子回购为主回购的
    这样,您在主回购协议中保留的只是引用另一个回购协议的特定SHA1(但您可以这样做,有点像svn external)。
    使用(如中所示),您甚至可以更新这些模块,让它们只签出您想要的回购协议的一部分(比如只签出jar,而不是签出源)

请注意,您不应该在GitHub回购中存储您将要生产的任何交付(比如您自己的罐子)

不过,您可以将这些交付关联到