【问题标题】:How can I get Eclipse to use my IVY_HOME variable when downloading ivy dependencies?下载 ivy 依赖项时,如何让 Eclipse 使用我的 IVY_HOME 变量?
【发布时间】:2012-06-29 09:18:20
【问题描述】:

我的公司广泛使用 ivy 来下载依赖项。其中一些依赖项很大(约 500MB),需要一段时间才能从远程存储库下载。

为了构建我们的应用程序,我们有一个 ant 脚本,它将首先解析所有依赖项并部署到服务器。

我设置了一个“IVY_HOME”环境变量,以便将所有依赖项下载到 D:\ivy_home 而不是 C:\Users\.ivy2\ - 这是因为 D: 是我的 SSD,速度明显更快,而且是我的本地服务器目录所在的位置 - 因此将文件从 ivy_home 复制到服务器非常快。

但由于某种原因,当我在 eclipse 中使用 IvyDE 插件时 - 它总是想下载所有依赖项的单独副本并将它们放入我的 C:\ 中,这会导致几个问题:

  1. 来自 ant 脚本的本地发布将不会在 Eclipse 中被拾取,因为它们被放置在不同的位置
  2. 已经在 D: 中下载的依赖项不会被拾取,这使得 eclipse 中的 ivy Resolve 比它需要的慢得多
  3. 依赖项在 Eclipse 中的驱动速度较慢,因此执行搜索和执行这些 jar 也较慢

【问题讨论】:

  • 作为一种解决方法,我能够创建一个 NTFS 连接,以便我的 c:\Users\\.ivy2 目录实际上指向与我的 IVY_HOME 相同的目录。但显然 NTFS 连接有一些与之相关的开销,并不是一个完美的解决方案。
  • 我找到了这张票 - 我认为这是 IvyDE 中的一个错误 issues.apache.org/jira/browse/IVYDE-311

标签: ivy ivyde


【解决方案1】:

如何创建符号链接以将用户中的 .ivy2 替换为 D?我自己试过了,效果不错。

以root身份打开cmd,然后执行这一行

mklink /d C:\Users\{username}\.ivy2 D:\.ivy2

【讨论】:

  • 感谢您的回答 - 这实际上是我最终所做的。
【解决方案2】:

我将创建一个 ivysettings.xml 文件并使用 caches 指令指定我的缓存位置。例如,请参阅以下答案:

can I turn off the .ivy cache all together?

【讨论】:

  • 我不想更改一个项目的缓存目录 - 我想更改 ivy 存储的默认位置。请注意,在我的公司中,我们有许多使用 ivy 的项目,并且每个项目的设置不应该是特定于机器的。每个开发人员都指定 IVY_HOME 目录,以根据他或她的特定设置最大化时间。
  • @codefactor Eyad 提供了另一种选择。设置“ivy.default.ivy.user.dir”属性的值。
【解决方案3】:

为什么不使用 ivysettings.xml 和属性文件全局设置 IVY。 这个属性文件可能有这样的:

ivy.default.ivy.user.dir=D:\ivy_home

对于单个项目,您可以取消选中每个 IvyDE 库管理的“启用项目特定设置”,因此它们将使用 IVY 全局设置,并带有一个额外的 eclipse 环境配置。

【讨论】:

  • 你能指定如何全局设置IVY吗?是否可以设置一些环境变量来更改 .ivy2 的位置?目前,除了符号链接,我没有看到任何其他选项。
猜你喜欢
  • 2015-11-05
  • 2015-10-21
  • 1970-01-01
  • 1970-01-01
  • 2019-05-22
  • 2014-05-13
  • 2016-01-30
  • 2020-03-12
  • 2015-11-18
相关资源
最近更新 更多