Точка расширения Eclipse для обновления пути к классам - PullRequest
2 голосов
/ 28 октября 2010

Вопрос

Учитывая контейнер Classpath, который я написал как плагин / расширение, как мне автоматически добавить его в classpath?

Фон

Хорошо, я опытный Java-разработчик, но чрезвычайно новичок в написании плагинов Eclipse. Я гуглял, следил за учебниками и читал исходный код других плагинов в течение пары дней. Я точно знаю, что я хочу сделать, но не совсем точно, как это сделать.

Прямо сейчас, в Eclipse, когда я щелкаю ресурс и выбираю «Выполнить как тест JUnit», как в:


for some reason, my pics don't work anymore. I'll fix this soon...


За кулисами плагин m2eclipse каким-то образом генерирует конфигурацию запуска, которая содержит контейнер пути к классу Maven Dependencies, например:

alt text

По-моему, контейнер пути к классу Maven Dependencies добавляется через некоторую точку расширения, используемую плагином M2Eclipse. Точно так же я хочу добавить свой контейнер classpath автоматически, всякий раз, когда пользователь запускает тест JUnit - так, чтобы он отображался в разделе «Записи пользователя». Какие точки расширения я могу использовать, чтобы что-то подобное произошло? Я смотрю на org.eclipse.jdt.core.classpathContainerInitializer , но я не уверен, что это будет делать то, что мне нужно.


Идеальный результат

В идеале я хотел бы написать плагин, который будет принимать каждую запись в пути сборки проекта и добавлять ее в путь к классу конфигурации запуска (каждый раз, когда создается новая конфигурация запуска с помощью: Выполнить как> тест JUnit ). Это должно быть поведение по умолчанию Eclipse, но это не так!

Моим следующим лучшим решением было бы просто автоматически добавить мой пользовательский контейнер classpath в путь сборки конфигурации запуска. В конце дня я просто хочу один путь к классу для любого Java-кода, который запускает / запускает наша команда. Это не должно быть так сложно!

Буду признателен за любые советы о том, как этого добиться! Даже основные указатели на то, где искать, чтобы понять, как определенные точки расширения предназначены для использования (базовые API JavaDocs ужасны). Спасибо,

  • gMale

Ответы [ 2 ]

1 голос
/ 08 апреля 2011

Roostergx предоставляет часть ответа (то есть, как создать контейнер classpath).Как вы признаете, вторая часть заключается в том, как добавить его автоматически.

Я бы порекомендовал использовать точку расширения org.eclipse.ui.startup.Это позволяет вам вносить код, который выполняется (в значительной степени) как можно раньше, когда запускается Eclipse.При каждом запуске вы можете выполнить итерацию по всем проектам и посмотреть, требует ли какой-либо из существующих проектов созданный вами контейнер classpath.

0 голосов
/ 03 января 2011

Статья в http://www.ibm.com/developerworks/opensource/tutorials/os-eclipse-classpath/index.html предоставляет отличное описание и источник для плагина, который определяет контейнер пути к классам для конкретного проекта, который включает все файлы JAR в указанном каталоге.

...