如何在Eclipse插件中使用路径变量

时间:2011-11-03 12:00:28

标签: eclipse eclipse-plugin

我有一个Eclipse插件,用户可以在其中选择文件或文件夹。目前我将绝对路径存储在配置文件中。由于配置文件在用户之间共享(例如,使用SVN),因此绝对路径是个问题。

我的配置文件目前看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<paths>
    <path value="C:\Users\UserA\someFolder\foo.jar"/>
    <path value="C:\Users\UserA\someFolder\bar.jar"/>
</paths>

为了解决这个问题,我想使用Eclipse的Linked Resources功能。因此,当用户使用名称MY_JARS和值“C:\ Users \ UserA \ someFolder”定义路径变量(Eclipse首选项 - &gt; General - &gt; Workspace - &gt; Linked Resources)时,我的插件会写入配置文件应该看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<paths>
    <path value="${MY_JARS}\foo.jar"/>
    <path value="${MY_JARS}\bar.jar"/>
</paths>

如何用Eclipse的Linked Resources中定义的变量名替换路径的某些部分?当我从配置文件中读取路径以获得正确的绝对路径时,如何还原这个?

我看过IPathVariableManager看起来很有希望。但是,我无法弄清楚如何正确使用它。

1 个答案:

答案 0 :(得分:1)

假设用户指定了绝对路径,并且您希望使用任何匹配的已定义变量将其替换为相对路径,则使用IPathVariableManager.convertToRelative(...)。要从亲戚获取绝对路径,请使用IPathVariableManager.resolveURI(...)

当然,这假设变量是在使用配置文件的所有环境中定义的,但并非总是如此。因此,最好让用户指定具有已知变量的路径,而不是在后台自动转换。