#eclipse #eclipse-plugin
#eclipse #eclipse-плагин
Вопрос:
У меня есть плагин Eclipse, в котором пользователь может выбирать файлы или папки. В настоящее время я сохраняю абсолютные пути в файле конфигурации. Поскольку файл конфигурации является общим для пользователей (например, с помощью SVN), абсолютные пути являются проблемой.
Мой файл конфигурации в настоящее время выглядит примерно так:
<?xml version="1.0" encoding="UTF-8"?>
<paths>
<path value="C:UsersUserAsomeFolderfoo.jar"/>
<path value="C:UsersUserAsomeFolderbar.jar"/>
</paths>
Чтобы устранить проблему, я хотел бы использовать функцию связанных ресурсов Eclipse. Итак, когда пользователь определяет переменную пути (настройки Eclipse -> Общие -> Рабочее пространство -> Связанные ресурсы) с именем MY_JARS и значением «C:UsersUserAsomeFolder » конфигурационный файл, который записывает мой плагин, должен выглядеть примерно так:
<?xml version="1.0" encoding="UTF-8"?>
<paths>
<path value="${MY_JARS}foo.jar"/>
<path value="${MY_JARS}bar.jar"/>
</paths>
Как я могу заменить определенные части пути именами переменных, которые определены в связанных ресурсах Eclipse? И как я могу отменить это, когда я читаю путь из файла конфигурации, чтобы получить правильный абсолютный путь?
Я посмотрел на IPathVariableManager, который выглядит довольно многообещающе. Однако я не мог понять, как правильно его использовать.
Ответ №1:
Предполагая, что пользователь указывает абсолютный путь, и вы хотите заменить его относительным путем, используя любую соответствующую определенную переменную, которую вы бы использовали IPathVariableManager.convertToRelative(...)
. Чтобы получить абсолютный путь из относительного, используйте IPathVariableManager.resolveURI(...)
.
Естественно, это предполагает, что переменная определена во всех средах, где используется файл конфигурации, что может быть не всегда. Поэтому лучше позволить пользователям указывать пути с известными переменными, а не автоматически преобразовывать за кулисами.