Итак, Затмение и относительные пути ...
Чего я хочу добиться - это поделиться файлами проекта с несколькими пользователями, где точное местоположение источника может быть различным для каждого пользователя.
Т.е., src для проекта MyProject может иметь значение c:\version_control_foo\MyProject\src
или c:\version_control_bar\MyProject\src
или даже X:\foobar\MyProject\src
, и один и тот же проект должен работать для всех.
Вот что я пробовал:
Я установил переменную C_TMP в Eclipse, указывая на c:\version_control_foo
, предполагая, что пользователь # 2 запустит Eclipse с другим параметром для переменной. Затем я создал связанную исходную папку, используя переменную.
Это создало эту запись в моем .project
файле:
<linkedResources>
<link>
<name>C_TMP</name>
<type>2</type>
<locationURI>C_TMP</locationURI>
</link>
</linkedResources>
<variableList>
<variable>
<name>C_TMP</name>
<value>file:/C:/version_control_foo</value>
</variable>
</variableList>
Изменение переменной ничего не изменило, что имеет смысл, поскольку кажется, что проект скопировал ее значение.
Исходя из этого вопроса Думаю, я смогу сделать это, располагая все папки src относительно местоположения рабочей области, но это не очень хорошее решение.
Я думаю, что maven сможет справиться с этим, генерируя проекты Eclipse (верно?), Но я бы хотел справиться с этим с помощью чистого Eclipse и без специальных магических сценариев.
Редактировать: Это работает так же, как я надеялся, если я использую его, чтобы добавить больше библиотек. Почему он не работает с моими исходными папками?
Edit2: Некоторые пояснения, основанные на комментариях. Весь проект с исходными папками и файлами доступен в системе контроля версий. Но фактический путь к этим файлам уникален для каждого пользователя. Извлечение из системы контроля версий не подразумевает какого-либо копирования в локальное местоположение, которое может быть определено одинаково для всех.
Связанная исходная папка означает, что я могу определить ее относительно переменной. Эта переменная затем может быть установлена для каждого пользователя. Проблема в том, что значение переменной, похоже, копируется в файл .project и не соответствует значению, установленному в Eclipse.