Eclipse: как организовать зависимые источники JDK или JRE (JDK6 или JDK7)?

Возможно, я просто пропустил правильные ключевые слова / понятие, как описать мою проблему.

Сфера:

  • Я привык создавать свой проект с JDK6 и JDK7 в Eclipse Indigo.
  • Для конкретной библиотеки мне нужно использовать две версии исходного кода (каждая из которых предназначена для JDK6 или JDK7).
  • Но только по одному исключительно за раз, потому что они будут выдавать ошибки для неправильного JDK!

Проблема:

  • Как исключительно переключить (или активировать) специальную папку/папку с файлами, зависимую от выбранного JDK/JRE в Eclipse?
  • Нет никаких макросов C++, о которых я знаю, чтобы контролировать включение исходного кода во время компиляции :)

Есть ли в Eclipse возможность обхода ANT или других скриптовых сред сборки?


person spex66    schedule 18.12.2011    source источник


Ответы (1)


Вы бы сделали это, используя плагины и настроив среду выполнения плагинов в зависимости от желаемой JRE. Тем не менее, проверка среды выполнения активирует ваш плагин, когда среда выполнения удовлетворяет требованиям (или больше, чем требуется). Поэтому я особенно рекомендую использовать фрагмент, чтобы код JRE7 «переопределял» код JRE6.

Путь к этому заключается в том, чтобы ваш код JRE6 был в вашем базовом плагине. Но сделайте так, чтобы путь к классам вашего плагина сначала ссылался на несуществующий файл JAR, а затем на "." (чтобы получить код в базовом плагине). Затем создайте фрагмент JRE7, содержащий JAR-файл с классами, которые заменят ваши классы JRE6. (В противном случае невозможно, чтобы фрагмент переопределял плагин в OSGi).

Я думаю, что это также должно работать правильно при тестировании вашего кода с использованием PDE в среде IDE.

person Francis Upton IV    schedule 18.12.2011
comment
Я не думаю, что ОП говорит здесь о разработке плагинов. Я думаю, что они говорят об обычном проекте с несколькими целями (например, JDK6 и JDK7). - person Matthew Farwell; 18.12.2011
comment
Я думаю, что даже с обычными проектами вам нужно будет разделить свой код, потому что проект будет нацелен на конкретную версию JRE. В случае не-плагинов вы должны настроить библиотеки в Java Build Bath (в конфигурации сборки), чтобы они указывали на желаемую JRE. - person Francis Upton IV; 18.12.2011