Видимо ли содержимое фрагмента вне плагина хоста? - PullRequest
6 голосов
/ 09 апреля 2010

Я никогда раньше не работал с фрагментами плагинов. Я думал, что, создав новый класс внутри фрагмента и экспортировав пакет, содержащий его в манифесте фрагмента, я смогу получить доступ к этому классу из другого плагина, который уже зависит от плагина хоста. Тем не менее, я не могу заставить эту работу. Является ли содержимое фрагмента когда-либо видимым для какого-либо плагина, кроме плагина хоста? Если да, то нужно ли что-то особенное, чтобы это разрешить?

1 Ответ

8 голосов
/ 11 апреля 2010

Проблема не в том, что содержимое фрагмента не видимо другому плагину: они есть - просто попробуйте загрузить, например, файл свойств из classpath, он все еще работает, если этот файл свойств предоставляется фрагментом.

Но у вас нет информации о содержимом фрагмента во время компиляции. Это принцип фрагмента: вы не можете зависеть от него. И вы не знаете, есть ли у кого-то фрагменты или нет.

Это также не только проблема, которая есть только у «любого плагина, кроме плагина хоста». Это проблема, которую имеет даже сам хост-плагин. Он не знает о существовании фрагмента во время компиляции.

Вы также не можете надежно использовать фрагмент для переопределения частей классов подключаемого модуля хоста: FAQ Можно ли использовать фрагменты для исправления подключаемого модуля? , если вы этого хотите. На странице также описано, как это можно сделать.

Надеюсь, это поможет.

...