Может ли Eclipse 3.5 обнаружить все пакеты в каталоге плагинов?

Простой вариант использования: соберите продукт Eclipse с помощью простых скриптов, просто закинув пакеты в каталог плагинов. Раньше это работало с 3.3 - с 3.5 это не работает: мое приложение не запускается, так как плагин приложения не найден.

Вопрос: как проще всего это исправить? Кажется, это единственная боль во всем процессе обновления для меня.


Попытки: я думаю, это недопустимо для P2: вместо этого он поддерживает файл bundles.info, что, вероятно, очень умно... слишком умно для меня.

Некоторые идеи, которые у меня были:

  1. могу ли я вообще пропустить P2 и вернуться к простому старому, простому «грязному» механизму обнаружения?
  2. can I set up plugins dir as a 'watched directory'
    • looks like I need to use the p2.reconciler for that.. oh wait, it's deprecated already :-( bug 251561.. (thanks VonC for the pointer)
  3. может ли этот старый параметр в config.ini все еще работать? (который теперь заменен на «простой конфигуратор») osgi.bundles=org.eclipse.equinox.common@2:start, org.eclipse.update.configurator@3:start, org.eclipse.core.runtime@start
  4. мне позвонить директору (p2)? "пожалуйста, заберите мои плагины" :)
  5. Я бы избегал для этого папки dropin - это больше для конечных пользователей.
  6. Я бы не стал связываться с bundles.info, если это возможно.

Меня пока не интересуют все эти интеллектуальные функции в моем продукте — на самом деле пользователи вообще не используют встроенный механизм обновления. Так что я хотел бы ПОЦЕЛУЙ (т.е. просто для запуска) и добавить более расширенную поддержку, когда это необходимо.

Я спрашивал об этом на форумах Eclipse , но ответа пока нет, так что был бы очень признателен за просветление. Кроме того, не стесняйтесь исправлять мои предположения - я только что прочитал документацию P2, которые временами кажутся запутанными. Спасибо!


Ответ: на самом деле вариант 3 выше, кажется, все-таки работает - спасибо Фрэнсис за подтверждение этого ! (изначально это не сработало, но, вероятно, это было вызвано отсутствием каких-то депов). Моя единственная проблема с этим сейчас заключается в том, что для некоторых пакетов Eclipse на самом деле требуется простой конфигуратор. Поэтому мне интересно, не вызовет ли его замена проблем в будущем.


person Community    schedule 10.11.2009    source источник
comment
Только что добавил несколько источников информации о каталоге дропинов p2, ответ на ваш комментарий.   -  person VonC    schedule 10.11.2009


Ответы (3)


Вы можете изменить свой файл configuration/config.ini, чтобы не использовать org.eclipse.equinox.simpleconfigurator (который выполняет настройку на основе p2), а вместо этого использовать org.eclipse.update.configurator, который старый способ просто настроить все, что находится в каталоге плагинов. Это должно дать вам то, что вы хотите.

person Community    schedule 26.11.2009
comment
Я только что пришел к тому же выводу, который, кажется, наконец-то работает. Мои предыдущие испытания не увенчались успехом: у меня были ложные NCDFE и загадочные сбои, которые заставили меня поверить, что вернуться к старой школе невозможно. Теперь, когда я начал с нуля (вероятно, устранив настоящую корневую проблему некоторых других отсутствующих пакетов), все выглядит намного лучше :) В любом случае, спасибо за подтверждение! Я собирался добавить ответ на этот вопрос. Однако для некоторых пакетов eclipse (например, JDT) явно требуется простой конфигуратор (что я нахожу немного странным). Как вы думаете, старый школьный способ подходит для них? - person inger; 26.11.2009
comment
Я не знаю, что вы подразумеваете под пакетом, требующим простого конфигуратора. Насколько я знаю, это функция среды (как указано в config.ini), а не что-то, что может быть указано пакетом. Можете ли вы уточнить, что вы имеете в виду здесь? - person Francis Upton IV; 27.11.2009
comment
Конечно. Есть бандл org.eclipse.equinox.simpleconfigurator_1.0.200.v20090831.jar и еще один зависит от него по Require-Bundle в MANIFEST.MF: org.eclipse.jdt.junit_3.6.0.v20091026-1200.jar. - person inger; 04.12.2009
comment
О, теперь я понимаю. Это нормально, потому что материал JDT JUnit должен ссылаться на что-то из simpleconfigurator, что не является проблемой, поскольку пакет все еще будет там, но это совершенно не зависит от процесса, используемого для выполнения начальной настройки. - person Francis Upton IV; 04.12.2009

Даже если он не полностью отвечает тому, что вам нужно, вы можете указать в eclipse.ini (например, тот, который я опишите здесь):

-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/jv/eclipse/mydropins

Это указывает на то, что p2 должен отслеживать любой выбранный вами каталог для обнаружения в нем плагинов.


Еще одним источником идей может быть эта статья: Составление и обновление пользовательские дистрибутивы Eclipse

Нетрудно создать продукт на основе функций, который включает эти вещи, и выполнить сборка продукта, чтобы в итоге получилось что-то вроде этого:

alt text


Примечание. Концепция согласования подробно описана в eclipse Wiki.

Для определенных установок Eclipse будет существовать понятие общей установки — это может быть в случае системы Linux, где базовый набор программного обеспечения устанавливается через пакеты (возможно, RPM), или может быть в развертывании Maya, где общие профили определяются на центральном сервере.
В обоих случаях необходимо выполнить согласование между общим профилем и текущим экземпляром профиля пользователя, включая любые изменения, которые они могли внести.

Частью этого механизма является настройка Dropins Reconciler. Хотя, как показывает ошибка 251561, не рекомендуется слишком там много плагинов.

person VonC    schedule 10.11.2009
comment
Спасибо за это. В общем, это способ реализовать «отслеживаемые каталоги» (второй вариант в моем вопросе). Я видел, как эта опция упоминалась в различных блогах, но не было ясно, правильно ли она работает. Можете ли вы добавить туда несколько каталогов? Можете ли вы добавить сами каталоги плагинов? Это вообще задокументировано? Ни в справочной системе, ни в вики p2 (которая, кажется, имеет сотни страниц, но очень мало актуальной или конкретной, кроме бреда о том, насколько крута система.. в принципе :-) В любом случае я буду попробуйте - огромное спасибо за ваши подсказки. - person inger; 10.11.2009
comment
Кроме того, почему используется параметр -D vmarg, а не добавление его в config.ini? Согласно руководству, eclipse.ini предназначен для общих настроек виртуальной машины, все остальное должно находиться в файле configuration/config.ini. См. «итог» help.eclipse.org/galileo/index.jsp?topic=/ - person inger; 10.11.2009
comment
@inger: хороший момент, но я всегда модифицировал один файл конфигурации: eclipse.ini. Он всегда распространяется вместе с eclipse, и мне не нужно изменять несколько файлов. - person VonC; 10.11.2009
comment
@Vonc, спасибо за дополнительные дополнения к вашему ответу, особенно за ссылку на эту ошибку, которая в основном говорит о том, что дропы уже устарели (bugs.eclipse.org/bugs/show_bug.cgi?id=251561#c18). Невероятный.. - person inger; 12.11.2009
comment
@Vonc, также интересна ссылка на блог Эндрю Нифера, но она не имеет отношения к вопросу, не так ли? Обратите внимание, что меня не волнует возможность обновления, по крайней мере, не раньше, чем я смогу просто запустить свой чертов продукт (без переписывания моей системы сборки). - person inger; 15.11.2009

Возможно, это вам поможет (снято в темноте)? Я обнаружил это при обновлении моей установки Eclipse до Galileo и попытке сохранить установку плагина Flex.

person Ryan Lynch    schedule 10.11.2009
comment
Спасибо за это, но это другой вариант использования — это полезно для обмена местоположениями плагинов с помощью ссылок. Я бы не стал вводить такие косвенные обозначения в свой продукт из коробки. - person inger; 10.11.2009
comment
Да, я не разработчик Eclipse, но я решил попробовать. Удачи. - person Ryan Lynch; 11.11.2009