Можно ли в настоящее время создавать плагины Eclipse с помощью Maven и иметь хорошую интеграцию с IDE?

В настоящее время я оцениваю maven, чтобы улучшить наш процесс сборки. Сборка и создание обычных файлов jar работает до сих пор, хотя я не совсем доволен Maven IDE.

Сейчас я нахожусь в том месте, где собраны все библиотеки, которые мне нужны для нашего проекта, и я перехожу к проектам Eclipse RCP. И теперь я не знаю, как быть дальше.

Есть несколько плагинов, которые мне нужно сначала собрать, прежде чем переходить к фактической части RCP. Поэтому у меня на самом деле 3 проблемы.

Я хочу создать эти плагины, единственным реальным решением для этого является maven-bundle-plugin: http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html

Но для хорошей интеграции с IDE мне также нужны соответствующие файлы (plugin.xml, build.properties и т. д.), которые должны генерироваться автоматически.

Для создания частей RCP пока кажется, что единственным решением является только pde-maven-plugin http://mojo.codehaus.org/pde-maven-plugin/, который, насколько я могу судить, использует ant-pde. Это глупо, не так ли?

Единственное, что я смог найти, это tycho (http://www.sonatype.com/people/2008/11/building-eclipse-plugins-with-maven-tycho/), но это пока на очень ранней стадии.

и опять же, необходима хорошая интеграция с Eclipse. Я очень, очень, очень не хочу указывать зависимости дважды.

Итак, как вы создаете свои проекты Eclipse RCP с помощью maven?

Обновить

На данный момент кажется, что такого решения нет. Tycho выглядит очень многообещающе, но я потратил 2 дня и не запустил его (текущая версия на данный момент). Возможно, через пол года он будет готов.


person Mauli    schedule 13.02.2009    source источник
comment
Поскольку PDE основан на файлах сборки ANT, я не понимаю, насколько глуп pde-maven-plugin. Не изобретайте велосипед.   -  person Aaron Digulla    schedule 13.02.2009
comment
Но maven уже делает большинство вещей сам по себе (компилирует, упаковывает и т. д.), так почему бы не иметь полностью независимый (от ant) ​​плагин с минимальными затратами на настройку?   -  person Mauli    schedule 13.02.2009
comment
В настоящее время я смотрю Tycho vs. Buckminster и т. д. Спустя год после вашего вопроса, каковы ваши впечатления?   -  person cuh    schedule 12.07.2011


Ответы (8)


Нет такого инструмента нет. Tycho также является единственным известным мне подходом.

person Philip Helger    schedule 13.02.2009

Я использую m2eclipse, и он хорошо подходит для моих нужд. Вы указываете свои зависимости в pom.xml, и они автоматически учитываются в пути сборки Eclipse.

Предостережение: я ничего не могу сказать о RCP (никогда ничего не делал для этой платформы).

С наилучшими пожеланиями,

Кирилл

person cadrian    schedule 20.02.2009
comment
отличный ответ, я просто хотел добавить, что я создал maven-плагин, и мне нравится использовать maven. - person IAdapter; 01.12.2010

Вы полностью настроены на использование maven для создания приложений RCP? Я спрашиваю об этом, потому что, судя по моему опыту, использование maven для создания чего-то большего, чем тривиальные RCP-приложения, может быть довольно болезненным. Когда я начал работать над приложениями RCP, я сначала исследовал использование maven в качестве решения для сборки, но обнаружил, что в то время поддержка сборок eclipse в maven была очень простой. Кроме того, некоторые мои коллеги используют maven для другого проекта на основе RCP в нашей компании, и хотя поддержка eclipse стала лучше, им пришлось пройти через некоторые препятствия, чтобы заставить его работать по своему вкусу. Итак, я считаю, что на данный момент придерживайтесь сборки pde на основе ant для ваших RCP-приложений.

person nstehr    schedule 20.02.2009

В настоящее время Tycho позволяет разрешать зависимости на основе манифестов встроенных пакетов (необходимые пакеты, импортированные пакеты и т. д.).

Более того, Tycho можно настроить для использования целевой платформы для сборки. Это позволяет использовать одну и ту же целевую платформу для сборок maven и pde.

Начиная с версии 0.24.0, Tycho может даже создавать плагины без POM. входы и функции, избегая дублирования метаданных версии и артефакта.

В свете вышеизложенного и учитывая, что даже платформа Eclipse построена с ее использованием для Несколько лет назад Maven Tycho в настоящее время является лучшим способом построить RCP без головы.

person tkotisis    schedule 01.12.2017

В нашем проекте мы разделили целевую платформу и плагины приложения. Вкратце: мы создаем целевую платформу с помощью Maven, а плагины приложений создаются с помощью PDE.

person Sergey Borodavkin    schedule 17.02.2009

Я некоторое время использовал Mavenide, все было нормально. Хотя не уверен, как сегодня.

person Decio Lira    schedule 17.02.2009

Tycho делает то, что вам нужно. Теперь, в 2012 году, это зрелый и полезный набор плагинов maven. Я могу только рекомендовать это.

Качество документации, очевидно, не сильно изменилось с 2009 года. Запустить Tycho может быть сложно. Нам удалось понять Tycho, и мы успешно использовали его для создания довольно большого приложения Eclipse RCP более полутора лет. Мы приняли подход «сначала манифест», при котором все зависимости плагина (проекта) определены в MANIFEST.MF. Конечным продуктом нашей сборки является исполняемое приложение, а также сайт p2 для легкого обновления. Все сделано сборкой maven.

person gargii    schedule 26.04.2012
comment
Привет, Tycho создает независимый проект maven (как с использованием архетипа), как создается RCP-приложение netBeans или что-то более сложное, что оно привязано к Eclipse IDE. Потому что то, что я вижу здесь, кажется более сложным wiki.eclipse.org/Developing_Tycho. - person Bax; 24.09.2012

Если вы создаете подключаемый модуль или приложение Eclipse (RCP), рекомендуется использовать Maven Tycho.

Он довольно умен в разрешении зависимостей osgi. Вы можете обратиться к моим учебным пособиям в учебным пособиям Maven Tycho.

Maven Tycho требует установки m2eclipse и конфигуратора Tycho.

И архетип должен быть eclipse-plugin или eclipse-feature или eclipse-repository.

person Malai    schedule 09.12.2017