10

我的 SVN 存储库中有一个第三方库,我想在 Eclipse 中将 source/javadoc 与它本地关联。即,应该有一些本地设置(例如,local.properties文件中的条目)将源/javadoc 与 JAR 文件相关联,但不会通过.classpath. 理想情况下我会有

lib_src_dir = /my/path/to/lib/src

local.properties然后

<classpathentry kind="lib" path="lib.jar" sourcepath="${lib_src_dir}">

.classpath. 这可以做到吗?

[编辑] @VonC 的回答很有帮助......有没有办法从文本文件(例如,local.properties)加载路径变量,而不是通过 Window -> Preferences -> General -> Workspace -> Linked Resources?

4

3 回答 3

17

我相信这将通过以下方式更好地实现:

  • 链接文件夹的创建与
  • 链接资源的声明

链接的资源定义了一个路径变量,它等于/my/path/to/lib/src

Eclipse 链接资源

链接文件夹将引用您的链接资源

链接资源

(您可以使用“变量”按钮使用变量而不是固定路径)

该变量实际上始终是本地的(对于一个人的工作区),并且将通过Linked Resources首选项屏幕进行修改。

链接文件夹也可以是...链接文件,从而允许通过相对路径(相对于变量)引用存档。
然后这个链接文件(这里是链接档案)可以classpathentry在“ source”属性中关联到您的。


链接资源的问题在于它们在首选项中位于工作区的本地。
您可以将首选项导出到一个[myPrefs.epf]文件中,然后修剪导出的文件以便只保留包含以下内容的行pathvariable

/instance/org.eclipse.core.resources/pathvariable.MY_DIRECTORY=/my/path/to/lib/src

然后任何人都可以导入这个特殊的首选项文件,这只会影响“ Linked Resources”部分。

该解决方案不是很令人满意,因为.epf无法在项目中自动加载首选项文件
当我设置一个带有定义路径的链接资源的项目时,我总是README.txt在我的项目的根目录下留下一个大的,以鼓励所述项目的用户使用他/她自己的固定本地路径定义相同的链接资源。

一些 bug正在进行中以增强这种情况或围绕链接资源主题

尤其:


DevByStarlight评论中提到了该项目(自 2011 年 10 月以来不太活跃)workspacemechanic

Workspace Mechanic 通过调整首选项、添加扩展位置等来自动维护 Eclipse 环境。您可以使用它来:

  • 在整个公司、您的本地团队甚至您自己的许多工作空间中创建一个一致的环境
  • 节省设置新工作区的时间
  • 创建任务以确保将您最喜欢的新首选项应用到您当前和未来的所有工作区。(这是我们最喜欢的功能之一!)

Workspace Mechanic 行为的关键是Task.
任务描述了一个简单的测试和一个动作,当它运行时会改变环境,因此测试随后会通过。
Tasks可以有多种形式:首选项文件、Java 类、Groovy 脚本和 Eclipse 扩展。您可以轻松定义自己的任务。

它带有一组脚本:

于 2008-11-18T22:17:06.143 回答
6

在后台和空闲时间工作了几天之后,我刚刚想出了一个简单的答案(在 Indigo 中)。我发现最简单的方法是在 Project Explorer 中展开您的项目,进入您的 Referenced Libraries,右键单击相应的引用 JAR,然后单击 Properties。在那里,您可以选择指定 JavaDocs 位置。输入包含 index.html 和 packages-list 的文件夹的位置,这些文件是 Javadocs 的一部分。小菜一碟!

到目前为止,我看到的唯一问题是我敢打赌,您需要在每个引用该库的项目中都这样做。

于 2011-12-15T18:04:05.003 回答
0

您可以使用类路径变量来执行此操作。

每个开发人员在 Window -> Preferences -> Java -> Build Path -> Classpath Variables 处创建几个新变量。

定义一个指向包含第三方 JAR(或 JARS)的目录的变量(比如 JAVA_LIB_DIR)。定义另一个指向包含第三方源代码 (JAVA_SRC_DIR) 的目录的变量。您可以按照自己的喜好进行设置,但我们的结构如下:

common/   
  lib/
    java/       <-- JAVA_LIB_DIR variable points to this directory
      axis/
      bitronix/
        1.0/bitronix.jar   "extension" is "bitronix/1.0/bitronix.jar"
      ...

在项目的构建路径中,使用“添加变量...”选项添加库。然后,当您“附加源”时,系统会提示您输入源代码的变量和扩展名。

这样,可以签入单个共享的 .classpath 文件,同时允许每个开发人员在他们喜欢的位置找到他们自己的库和源目录。

于 2008-11-19T20:16:48.447 回答