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 rootDevByStarlight 在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的不可映射字符”问题(转)
DataTables 将源数组包含在 JSON“数据”属性中