在Eclipse中将用户库定义为项目的一部分而不是工作空间

时间:2011-06-02 11:11:56

标签: java eclipse classpath

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

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

项目级别是否有这样的功能?我基本上需要一个'类路径组' - 可以这样做吗?

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

我正在使用Eclipse 3.6

3 个答案:

答案 0 :(得分:5)

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

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

除了导出/导入(您已经在进行)之外,我不相信您可以将CLASS_LIBRARIES检查到项目的SCM中。如果有,则首选项页面顶部会显示“配置项目特定设置”链接。

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

答案 1 :(得分:2)

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

使用m2eclipse与标准的eclipse approch有很多优点。更多信息位于http://www.sonatype.com/books/m2eclipse-book/reference/

答案 2 :(得分:0)

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

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

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

它与用户库类似,但具有类似的限制。限制是您与项目共享的其他用户必须创建变量文件夹。但它更灵活,因为它们不必像库存那样明确地添加罐子;相反,Eclipse中的classpath / s指向每个项目所需的文件夹。

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

这可能比用文字描述更容易展示,但我希望它有意义。