【问题标题】:Definining user libraries in Eclipse as part of a project and not a workspace在 Eclipse 中将用户库定义为项目的一部分而不是工作区
【发布时间】:2011-09-07 00:17:00
【问题描述】:

我在Eclipse 中看到我可以定义用户库 - 以便更轻松地设置类路径(可能还有其他原因)。

问题是,这些库仅在工作区中可用,如果我希望其他使用相同项目的人使用它们 - 我需要导出我的用户库并且他们需要 导入。

在项目级别有这样的功能吗?我基本上需要一个'classpath group' - 可以吗?

如果没有,是否有在导入项目时自动将用户库自动导入工作区的方法?

我正在使用Eclipse 3.6

【问题讨论】:

  • :) 我们正在过渡到 Maven,但是这个项目还没有达到...

标签: java eclipse classpath


【解决方案1】:

我使用用户库的方式是针对 Ant 之类的。为 ANT_HOME/lib 中的所有 jar 定义一个用户库“ant”。如果将它包含在您的 Eclipse .classpath 中,然后与其他用户共享,他们将获得构建问题报告,直到他们自己创建那个“ant”用户库。它很有用,但您需要分享有关如何创建库的知识。如果您将它用于上述简单情况,那么将正确的 jar 添加到库中的说明很简单。

我使用的另一种方法是构建指向在 Eclipse 中定义为变量的文件夹(或多个文件夹)的类路径。见File -> New Folder -> Advanced -> Link to folder in the file system -> Variables。这使您可以(再次在工作区级别)设置对一个或多个文件夹的变量引用。然后,您可以参考文件夹/s 构建您的 Eclipse 类路径/s。

所以说在您的开发环境中,每个人都需要有一个名为“第三方”的目录,其中包含所有外部 jar 依赖项(可能在该目录中的层次结构中:第三方/apache;第三方/太阳;...)。您将“第三方”定义为指向该目录在当前系统上的任何位置的变量,您可以使用该变量在项目中创建一个文件夹。然后,您可以使用该文件夹的路径设置(和共享)类路径。

它类似于用户库并具有类似的限制。限制是您与之共享项目的其他用户必须像您一样创建变量文件夹。但它更灵活,因为它们不必像使用库那样显式添加 jar;相反,您在 Eclipse 中的 classpath/s 指向该文件夹,这是每个项目所需的。

请注意,尽管文件夹变量是在工作区级别定义的,但它可以在多个项目中重复使用,每个项目都将其类路径(.classpath 文件)与不同的引用构建到文件夹中。

这可能比用文字描述更容易展示,但我希望它是有道理的。

【讨论】:

  • 感谢您的回答 - 我实际上是在尝试避免需要让我的团队成员执行手动操作的情况。这样做的目的是为了方便,目前我只是把所有的jar都添加到.classpath中,只是想将它们归为一个逻辑名称,以便于管理
【解决方案2】:

JDT 有两个概念,用户库和类路径变量。在 classpath 变量中,您可以将 jars 添加到您的项目中。其他团队成员必须在他们的工作空间中填写变量,以便他们的类路径完整。当外部 jar 可能位于每个团队成员本地文件系统的不同位置时,这很有用。

USER_LIBRARY 是一个容器,用于一次添加一组本地 jar 的逻辑组。例如,JRE_LIB 容器代表许多本地 jar。但正如您所看到的,它指向一组本地 jar,旨在用于多个项目(因为 JRE 被添加到多个项目中)。

除了导出/导入(您已经在做)之外,我不相信您可以将 CLASS_LIBRARIES 签入项目的 SCM。如果有,首选项页面顶部会有一个“配置项目特定设置”链接。

最好的办法是简单地将 jar 添加到项目中,这样它们就会包含在 SCM 中。如果它们可以根据团队的其他成员位于不同的位置,则使用类路径变量,以便可以在每个工作区中设置它。就团队成员检查项目并准备开始而言,这是最少的麻烦。

【讨论】:

  • 谢谢,所以从您的回答看来,我的问题的答案是:“否”。我的问题是我只想让事情变得更简单、更容易。我们正在使用SoapUI 进行测试,它有一个大约 30 个 jar 的依赖项列表——我想将它们全部组合到一个列表中,以便从类路径中添加/删除它们。它们都在源代码控制中——但我没有简单的方法将此配置分发给其他开发人员。现在我更愿意将它们全部保存在公共类路径中。
  • 新手参考 JDT == Eclipse Java 开发工具:eclipse.org/jdt
【解决方案3】:

IMO 的最佳方式是使用 m2eclipse - Maven 插件用于 eclipse。在 Maven 中,所有依赖项都在 pom.xml 中定义,并根据需要自动下载。这意味着您与团队共享的唯一内容是 pom.xml - 您的项目定义。

使用 m2eclipse 与使用标准 eclipse 方法相比有很多优势。更多信息在http://www.sonatype.com/books/m2eclipse-book/reference/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 2010-09-18
    • 2017-05-13
    • 2012-04-07
    • 1970-01-01
    相关资源
    最近更新 更多