2012-10-19 3 views
1

Есть ли способ использовать% UserProfile% при указании путей в Eclispe .classfile? У меня есть проект, который содержит следующую строку в его .classfile:Использовать% UserProfile% в Eclipse .classpath (Windows)

<classpathentry kind="lib" path="C:/Users/<username>/.ivy2/cache/somelib.jar"/> 

Есть ли способ указать это в более переносимым способом, который может быть проверен в хранилище и используется различными пользователями? В частности, я хотел бы избавиться от части пути C:/Users/<username>.

Я вижу два возможных пути решения этой проблемы, но не знаю, как реализовать любого из них:

  1. Используйте% USERPROFILE% в пути, чтобы обратиться к каталогу пользователей. В Linux можно использовать ~, но это, похоже, не работает в Windows.
  2. Используйте переменную окружения, которая указывает местоположение кегля плюща.

Любые намеки, как сделать любую из этих вещей или как решить проблему другим способом, будут оценены.

Фон: проект Scala, который построен с использованием sbt, который управляет зависимостями с плющом.

ответ

1

Другим вариантом является использование контейнера классов. [Я не пробовал, что для Айви.]

http://ant.apache.org/ivy/ivyde/history/latest-milestone/cp_container.html

Classpath переменные (Вариант 2, который вы упомянули) это тоже возможно.

Щелкните правой кнопкой мыши по проекту> Настроить путь сборки> Добавить переменную> Настроить переменные> Новая переменная [создать имя с правильным именем]> ОК> Расширить [выбрать банки, которые вам нужно использовать].

Ваш путь к классу должен быть обновлен. В этом случае ваша команда проекта должна следовать той же процедуре.

2

Задумывались ли вы просто использовать плагин sbt eclipse для управления проектом eclipse?

https://github.com/typesafehub/sbteclipse

Это создает проект, который вы можете импортировать в вашем рабочем пространстве.

+0

Спасибо. Да, я подумал об этом. Фактически, проект Eclipse был сгенерирован с помощью sbteclipse изначально. Однако сгенерированный не работает для нас по следующей причине: у нас есть два проекта, позвольте мне называть их «a» и «b», где a зависит от b. Зависимость управляется через sbt, поэтому барабан b будет в кеге плюща и указан в a. Однако для проекта Eclipse мы предпочли бы иметь зависимость от проекта Eclipse b, так что, например, рефакторинг работает в обоих проектах. – stefan

+0

Sbteclipse должен обрабатывать зависимости проекта просто отлично, пока вы определяете их в файле сборки Sbt как зависимые от проекта –

+0

Да, sbteclipse обрабатывает mutli-проекты в порядке - я сам использую его для этого. –

-2

из другой записи переполнения стека: это работает для вас?

System.getenv(String name), который я догадаться бы или System.getenv("USERPROFILE")System.getenv("%USERPROFILE%") - "ответом" ссылка ниже не так наивен, как мой простой asssumption

Can we read the OS environment variables in Java?

+0

вопрос не в том, чтобы делать это на Java. – stefan

Смежные вопросы