【问题标题】:Use %UserProfile% in Eclipse .classpath (Windows)在 Eclipse .classpath (Windows) 中使用 %UserProfile%
【发布时间】:2012-10-19 22:15:59
【问题描述】:

在 Eclispe .classfile 中指定路径时,是否可以使用 %UserProfile%?我有一个项目,在其.classfile 中包含以下行:

<classpathentry kind="lib" path="C:/Users/<username>/.ivy2/cache/somelib.jar"/>

有没有办法以更便携的方式指定它,可以检入存储库并供不同用户使用?特别是我想摆脱路径的C:/Users/&lt;username&gt; 部分。

我看到了两种可能的方法来解决这个问题,但不知道如何实现它们:

  1. 在路径中使用 %UserProfile% 来引用用户目录。在 Linux 上,可以使用 ~,但这似乎不适用于 Windows。
  2. 使用指定常春藤缓存位置的环境变量。

任何提示如何做这些事情,或如何以其他方式解决问题将不胜感激。

背景:该项目是一个使用sbt构建的Scala项目,使用ivy管理依赖关系。

【问题讨论】:

    标签: java eclipse scala sbt


    【解决方案1】:

    你有没有想过只使用 sbt eclipse 插件来管理你的 eclipse 项目?

    https://github.com/typesafehub/sbteclipse

    这会生成一个项目,您可以将其导入工作区。

    【讨论】:

    • 谢谢。是的,我考虑过这样做。其实 Eclipse 项目本来就是用 sbteclipse 生成的。但是,生成的对我们不起作用,原因如下:我们有两个项目,让我称它们为“a”和“b”,其中 a 依赖于 b。依赖是通过 sbt 管理的,因此 b 的 jar 将在 ivy 缓存中并在 a 中引用。但是,对于 a 的 Eclipse 项目,我们宁愿依赖 b 的 Eclipse 项目,例如重构适用于两个项目。
    • Sbteclipse 应该可以很好地处理项目依赖关系,只要你在 Sbt 构建文件中将它们定义为项目依赖关系
    • 是的,sbteclipse 可以很好地处理多项目 - 我自己用它来做这个。
    • 目前,sbteclipse 生成不可移植的类路径元数据(即到 ivy repo 的绝对路径)。像 Stefan 一样,我希望它能够生成可移植的 .classpath 文件,一旦正确,就可以将其签入 git 并为每个签出的人“正常工作”。我注意到 sbt-idea 在这方面做得更好,例如 &lt;root url="jar://$USER_HOME$/.ivy2/cache/junit/junit/jars/junit-4.7.jar!/" /&gt;
    【解决方案2】:

    另一个选项是可以使用类路径容器。 [我没有为 Ivy 尝试过。]

    http://ant.apache.org/ivy/ivyde/history/latest-milestone/cp_container.html

    类路径变量(您提到的选项 2)也是可能的。

    右键单击项目>配置构建路径>添加变量>配置变量>新变量[创建一个具有正确名称的变量]>确定>扩展[选择您需要使用的jar]。

    您的类路径应该更新。在这种情况下,您的项目团队需要遵循相同的程序。

    【讨论】:

      【解决方案3】:

      来自另一个堆栈溢出条目:这对您有用吗?

      System.getenv(String name),我会是 System.getenv("USERPROFILE") System.getenv("%USERPROFILE%") - 下面的“答案”链接并不像我的简单假设那么幼稚

      Can we read the OS environment variables in Java?

      【讨论】:

      • 问题不在于在 Java 中这样做。
      猜你喜欢
      • 2013-11-08
      • 1970-01-01
      • 1970-01-01
      • 2011-05-24
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      相关资源
      最近更新 更多