Java SVN中依赖关系的处理

Java SVN中依赖关系的处理,java,svn,Java,Svn,我正在与一个团队合作,该团队不久将编写一系列Java应用程序,作为一个更大项目的一部分。我们计划在源代码中使用SVN,但我们将依赖于其他一些不使用SVN的团队。他们将基本上编写一些库(以.jar的形式),我们将在应用程序中使用这些库 我知道,如果每个人都在svn上,我们可能会使用svn:externals,但在不久的将来,这似乎是不可能的。现在,我们大概每周从他们那里得到一次更新的.jar文件 我对SVN还比较陌生,那么处理这个问题的正确程序是什么?我们是否将他们的.jar签入我们的存储库?或者

我正在与一个团队合作,该团队不久将编写一系列Java应用程序,作为一个更大项目的一部分。我们计划在源代码中使用SVN,但我们将依赖于其他一些不使用SVN的团队。他们将基本上编写一些库(以.jar的形式),我们将在应用程序中使用这些库

我知道,如果每个人都在svn上,我们可能会使用svn:externals,但在不久的将来,这似乎是不可能的。现在,我们大概每周从他们那里得到一次更新的.jar文件


我对SVN还比较陌生,那么处理这个问题的正确程序是什么?我们是否将他们的.jar签入我们的存储库?或者我们应该避免在SCM中使用这样的二进制文件吗?我们还探索了通过Maven使用依赖关系管理…这似乎是团队之间共享二进制文件的一个好选择,但我不确定我们是否真的想要这么复杂的东西。

将库,尤其是第三方(在您的情况下,我想您可以称之为第三方)签入SVN(或任何SCM)这没什么大不了的,你可以从简单中得到很多好处。需要注意的是,如果jar或lib太大,并且经常更改,您可能会选择更复杂的(比如Maven、Ivy等)


SVN擅长处理二进制文件及其差异。

将库,尤其是第三方(在您的情况下,我认为您可以称它们为第三方)签入SVN(或任何SCM)并不是什么大问题,您可以从简单性中获得很多好处。需要注意的是,如果jar或lib太大,并且经常更改,您可能会选择更复杂的(比如Maven、Ivy等)


SVN擅长处理二进制文件及其差异。

如果空间不是问题(在服务器上),我认为签入二进制文件或甚至签入依赖项的源代码是正确的。这对每个人来说都很容易,这样人们就可以轻松地签出和构建,而不会有太多麻烦。

如果空间不是问题(在服务器上),我认为签入二进制文件甚至依赖项的源代码是正确的。这对每个人来说都很容易,这样人们就可以轻松地签出和构建,而不会有太多麻烦。

我建议阅读关于供应商分支的内容:

我建议阅读关于供应商分支的内容:

如果二进制文件很大,那么我肯定不会将它们签入存储库。我的建议是将JAR的最新版本存储在公共共享上,然后装载到该共享并通过项目文件链接它。这意味着只要装载的存储路径保持不变,就只需要一个人而不是每台机器更新二进制文件


如果它们不是太大,那么将它们签入repo也没什么大不了的。

如果二进制文件很大,那么我肯定不会将它们签入存储库。我的建议是将JAR的最新版本存储在公共共享上,然后装载到该共享并通过项目文件链接它。这意味着只要装载的存储路径保持不变,就只需要一个人而不是每台机器更新二进制文件


如果它们不是太大,那么将它们签入回购协议也没什么大不了的。

我发现依赖关系管理最好使用maven或ivy存储库。Artifactory和Nexus有免费版本。然后可以从构建脚本中管理它们。如果您正在使用Ant,或。我更喜欢Gradle。

我发现依赖关系管理最好使用maven或ivy存储库。Artifactory和Nexus有免费版本。然后可以从构建脚本中管理它们。如果您正在使用Ant,或。我更喜欢Gradle。

您当前的构建解决方案是什么?如果是基于ant的,迁移到Maven可能会非常痛苦。在这种情况下,我建议使用常春藤来跟踪依赖项。您当前的构建解决方案是什么?如果是基于ant的,迁移到Maven可能会非常痛苦。在这种情况下,我建议用ivy来跟踪依赖项。也许是一个只收集最新版本的库,然后用简化的、无版本的文件名将它们转储到SVN中的Maven?谢谢-这正是我想知道的。libs很小,所以这可能是最简单的方法。也许一个Maven什么都不做,只收集最新版本的库,然后将它们转储到SVN中,使用简化的、无版本的文件名?谢谢-这主要是我想知道的。lib很小,所以这可能是最简单的方法;诸如VCS或网络共享之类的即席依赖关系管理方法缺少许多重要功能(二进制版本管理、细粒度安全、代理和缓存远程存储库、元数据等)。谢谢-自从提出这个问题以来,我能够真正启动并运行Maven。要把东西配置得恰到好处是很困难的,但我确实看到了它工作正常时的许多好处。我将不得不尝试一些场景,看看对我的团队来说什么是最简单的;诸如VCS或网络共享之类的即席依赖关系管理方法缺少许多重要功能(二进制版本管理、细粒度安全、代理和缓存远程存储库、元数据等)。谢谢-自从提出这个问题以来,我能够真正启动并运行Maven。要把东西配置得恰到好处是很困难的,但我确实看到了它工作正常时的许多好处。我将不得不尝试一些场景,看看对我的团队来说什么是最简单的。我不知道这个功能-可能比我们需要的要复杂一点,但知道SVN有一个解决这个问题的方法很方便。我不知道这个功能-可能比我们需要的要复杂一点,但知道SVN有一个meth很方便