Как использовать переменные пути в плагинах Eclipse - PullRequest
0 голосов
/ 03 ноября 2011

У меня есть плагин 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. Итак, когда пользователь определяет переменную пути (предпочтения Eclipse -> Общие -> Рабочая область -> Связанные ресурсы) с именем MY_JARS и значением «C: \ Users \ UserA \ someFolder», файл конфигурации, который пишет мой плагин, должен выглядеть примерно так как это:

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

Как я могу заменить определенные части пути именами переменных, которые определены в Связанных ресурсах Eclipse? И как я могу отменить это, когда я читаю путь из файла конфигурации, чтобы получить правильный абсолютный путь?

Я смотрел на IPathVariableManager , который выглядит довольно многообещающе. Однако я не мог понять, как правильно его использовать.

1 Ответ

1 голос
/ 03 ноября 2011

Предполагая, что пользователь указывает абсолютный путь, и вы хотите заменить его относительным путем, используя любую соответствующую определенную переменную, вы должны использовать IPathVariableManager.convertToRelative(...). Чтобы получить абсолютный путь от относительного, используйте IPathVariableManager.resolveURI(...).

Естественно, это предполагает, что переменная определена во всех средах, где используется файл конфигурации, что может не всегда иметь место. Поэтому пользователям лучше указывать пути с известными переменными, чем автоматически конвертировать их за кулисы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...