1

使用 maven 管理 Java EE 项目很不错,并将所有 jar 依赖项放在 pom.xml 中,这样您就不需要将这些大 jar 文件添加到您的 git 版本控制 repo 中。

这很棒,尤其是当所有依赖项都在 Maven 中央仓库中时。

如果有一些 jar lib 不包含在 maven Central repo 中,你会将这些 jar lib 添加到 git repo 中吗?或者您只会将这些文件上传到您的本地 Nexus 服务器?(无论如何,如果有一天你不在本地的 nexus 服务器上,这并不好

那么你的选择是什么,你会将 jar 文件放到 git repo 中吗?或者你只会在 pom.xml 中定义它?当 Maven 的中央存储库不包含此类 jar 库时。

4

3 回答 3

2

我认为将依赖项保留在本地 Nexus 存储库(并在 pom.xml 中定义)而不是版本控制系统的最佳方法

于 2012-09-20T14:01:44.393 回答
1

显然,您将代码托管在 github 中,并从不总是在公司 Intranet 中的位置使用它。那么,基本上,您可以使用以下解决方案:

  1. 在您自己的公共服务器上托管一个 nexus(或类似)存储库,并进行身份验证。这样它就可以从任何你想要的地方访问。例如,它也可以在Amazon上完成。
  2. 使用一些免费、开放、托管的解决方案。例如,Sonatype 为开源项目提供免费托管。
  3. 正如已经建议的那样,您也可以在 github 上托管您的 maven存储库- 不要将其存储在您的代码存储库中,为它创建一个单独的项目!
  4. 或者.. 只需支付托管费用。如果您愿意为此付费,应该有一些受支持的解决方案。

这些中的任何一个都应该适合你。从您描述情况的方式来看,选项 3 可能是您想要的。无论如何,将它们放在代码存储库之外的其他地方。

编辑:可能我也忽略了闭源开发最不言而喻的解决方案,所以这将是一个替代方案 5。来自评论

在这种情况下,最明智的做法是将存储库放在防火墙后面,并允许外部人员通过您的 VPN 访问它。您可以设置一个可公开访问的服务,要求所有用户提供某种凭据,但是当您真的不需要组织外部的任何人使用时,为什么要向外部世界开放您的存储库(以及由此带来的所有风险)它?当然,假设您有一个 VPN - 但如果您有远程员工,您可能应该有一个 VPN,以便他们可以安全地访问您的内部服务。

如果您的回购不是公开的,这听起来很合理。

于 2012-09-21T06:45:04.233 回答
0

如果本地服务器不是一个选项,那么您可以使用 git 发布依赖项。

这是网址的示例: https ://github.com/plokhotnyuk/calculator/raw/master/repo

并且 repo 的内容应该从本地 maven 存储库中复制: https ://github.com/plokhotnyuk/calculator/tree/master/repo

于 2012-09-20T14:06:02.853 回答