Eclipse:通过本地属性将源/javadoc 附加到库

Posted

技术标签:

【中文标题】Eclipse:通过本地属性将源/javadoc 附加到库【英文标题】:Eclipse: Attach source/javadoc to a library via a local property 【发布时间】:2010-09-22 22:54:41 【问题描述】:

我的 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。这可以做到吗?

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

【问题讨论】:

刚刚针对您的评论添加了精确度 刚刚为您的第二个问题添加了答案 刚刚添加了对 .epf 文件系统的限制,以回应您的最新评论 【参考方案1】:

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

链接文件夹的创建结合 链接资源的声明

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

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

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

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

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


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

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

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

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

Several bugs正在改进这种情况或在Linked Resources topic附近。

特别是:

Exporting a project with linked resources Relative paths without variables Have linked resources relative to workspace paths Would like to use path relative to workspace root

DevByStarlight 在the comments 中提到了该项目(自 2011 年 10 月以来不太活跃)workspacemechanic。

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

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

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

它带有一组脚本:

workspace-mechanic workspacemechanic-settings

【讨论】:

这适用于源路径,但是:(1) 文档路径必须是绝对的,还是归档? (2)如何局部修改变量? 感谢您的回复。但是 .epf 的东西确实不比使用 Preferences UI 更好。有没有办法设置一个项目,让它从预定义的文件中自动加载路径变量? 不,恐怕你是在指出该系统的局限性:dev.eclipse.org/newslists/news.eclipse.newcomer/msg22823.html 查看 Workspace Mechanic 以自动加载 .epf 文件...code.google.com/a/eclipselabs.org/p/workspacemechanic @DevByStarlight 很有趣,尽管该项目似乎不再积极维护。我在答案中添加了参考以获得更多可见性。【参考方案2】:

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

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

【讨论】:

这帮助很大。谢谢!!【参考方案3】:

您可以使用类路径变量来做到这一点。

每个开发人员在 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 文件,同时允许每个开发人员在他们喜欢的位置找到自己的库和源目录。

【讨论】:

以上是关于Eclipse:通过本地属性将源/javadoc 附加到库的主要内容,如果未能解决你的问题,请参考以下文章

解决eclipse导出javadoc时的“错误: 编码GBK的不可映射字符”问题(转)

eclipse怎样生成javadoc

Eclipse:添加 javadoc

DataTables 将源数组包含在 JSON“数据”属性中

如何在eclipse中自动附加javadoc或指定javadoc位置

如何使用eclipse生成javadoc帮助文档