代码之家  ›  专栏  ›  技术社区  ›  seanhodges

如何为特定的O/S平台指定eclipse.classpath条目?

  •  7
  • seanhodges  · 技术社区  · 17 年前

    作为团队的一部分,我正在进行一个SWT项目。我们不断地破坏彼此的构建环境,因为eclipses.classpath文件被签入版本控制,并且我们为我们的机器包含不同的SWT库。

    根据最后提交者的不同,.classpath条目可以是:

    <classpathentry kind="lib" path="lib/swt/swt-win32.jar"/>
    

    <classpathentry kind="lib" path="lib/swt/swt-carbon.jar"/>
    

    <classpathentry kind="lib" path="lib/swt/swt-gtk.jar"/>
    

    图书馆似乎是互斥的,即你不能一次把它们都包括进去,让SWT来解决。所以我们需要以某种方式为每个平台过滤它们…

    有人知道怎么做吗?我最初的想法是将它分割成自己的“.classpath swt”文件(被VCS忽略),使用Ant自动生成它并将其包含在main.classpath中,但是Eclipse似乎不支持分割.classpath文件。

    我们目前的工作是避免提交.classpath,除非我们实际更改了依赖项,但是这仍然意味着每次.classpath更改时,许多人都必须修复其开发环境。

    任何建议都将非常感谢,只要它不是“不要使用Eclipse”,因为这不是这个项目的一个选项:)

    4 回复  |  直到 17 年前
        1
  •  9
  •   basszero    17 年前

    Eclipse允许您定义类路径变量,这样就可以保持.classpath不变,但是每个开发人员都会根据平台配置她的Eclipse。您至少可以对.classpath文件进行版本设置。您必须将存储SWT JAR的目录结构更改为每个平台的JAR名称不变的目录结构。此菜单位于:“ 窗口& gt;偏好-gt;java>构建路径

    SWTJARDIRECTORY/
        WIN32/
            SWT.JAR
        CARBON/
            SWT.JAR
        GTK/
            SWT.JAR
    

    前任。

        SWT_PLATFORM="SWTJARDIRECTORY/GTK", set by developer in Eclipse
    

    类路径

        SWT_PLATFORM/SWT.JAR
    
        2
  •  1
  •   Thorbjørn Ravn Andersen    17 年前

    您应该将这些库放在一个单独的、易于识别的项目中,而不是放在每个项目中。

    例如,创建一个名为“00 SWT Provider”的项目(因此它位于顶部),并让它引用“00 SWT Provider Carbon”、“00-SWT-Provider-Win32”或“00 SWT Provider GTK”中的一个。

    其中一个为给定平台导出适当的本机库,唯一的链接在00 SWT提供程序中。实际项目仅引用此元项目。

    我们在内部使用这种变体——它对我们很有效。

        3
  •  0
  •   Scott Bennett-McLeish    17 年前

    简单地配置您自己的实例,对于环境的这一个组件,您不把它保存在源代码管理中,怎么样?

    或者,您可以为每个环境存储一个类路径文件,可能存储在另一个目录中,也可以存储在一个Ant文件(即build-setup-env.xml文件)中,您只需为每个环境创建一个目标即可复制正确的目标。至于在源代码管理中保存此的副本,您必须确保在更新后将其复制回去。

        4
  •  0
  •   qualidafial    17 年前

    SWT是这么做的 对.classpath文件进行版本控制,但按版本控制附加了操作系统和窗口系统的多个单独的.classpath_*文件,例如classpath_win32_win32。因此,当您从存储库中签出源时,您需要将适当的类路径文件复制到.classpath并重新编译项目。

    推荐文章