Конструкторы MyEclipse и CI

Я получаю поддержку в проекте, который в настоящее время создается с помощью MyEclipse и имеет приличную команду разработчиков, которая работает без каких-либо процессов CI.

Насколько я могу судить, ребята из MyEclipse не вижу никакой ценности в возможности сборки за пределами платформы Eclipse, что для меня совершенно бессмысленно. Непрерывная интеграция чрезвычайно полезна, когда вам нужно интегрировать изменения в кодовую базу из более чем одной среды разработки, и довольно сложно автоматизировать сборки, когда вы привязаны к графическому интерфейсу.

У кого-нибудь есть процессы непрерывной интеграции, настроенные вокруг наборов проектов в стиле MyEclipse? Если да, то какую стратегию вы использовали для достижения этой цели?

AFAIKT, нет функции OOTB, которая может генерировать скрипт Ant (или эквивалентный скрипт безголовой сборки) из MyEclipse, а также нет открытого способа вызывать строителей MyEclipse с платформы скрипта сборки.

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

Меня не особенно интересует решение в стиле Maven для моих нужд, но если вы знаете такое, я хотел бы о нем услышать. Из моего первоначального исследования видно, что интеграция Maven/MyEclipse еще хуже.


person cwash    schedule 13.08.2009    source источник
comment
Позиция MyEclipse и Maven/CI заставила мою группу отказаться от них.   -  person Mike Cornell    schedule 19.08.2009
comment
@Mike - Спасибо за комментарий - у меня такое чувство, что вы не единственный в этой категории. :)   -  person cwash    schedule 19.08.2009


Ответы (3)


Это удивительно похоже на проблемы, с которыми я столкнулся при работе с приложением websphere 5.1, которое можно было собрать только из WSAD6, работающего на сборочной машине, созданной из образа диска из ИТ-отдела компании. У WSAD был безголовый режим. Было настоящей болью заставить Хадсона работать.

Я не удивлюсь, если для каждого используемого вами компоновщика есть плагин Maven и/или задача Ant. Я бы начал оттуда.

person sal    schedule 17.08.2009
comment
Хорошая мысль - это то, что я искал, но, увы, Genuitec не выпустила такой набор задач (хотя их было бы тривиально создать, потому что у них уже есть код!), потому что это кажется им неважным. .. См. myeclipseide.com/ - person cwash; 24.08.2009

Вот решение на основе Maven, так что, может быть, вы немного не по теме.

В нашей компании мы используем MyEclipse в качестве IDE и Hudson и Team City для непрерывной интеграции. Проекты основаны на Maven, поэтому Хадсон и TC могут с ними работать.

Когда вы хотите открыть проект в Eclipse, вам нужно проверить исходники, настроить путь репозитория maven для eclipse с помощью mvn eclispse:add-maven-repo, собрать их с помощью mvn install, а затем запустить цель mvn eclipse:eclipse, которая создает настройку проекта Eclipse из конфигурации POM maven. Затем можно импортировать проект в Eclipse и без проблем работать с ним.

Дополнительную информацию можно найти на странице проекта maven-eclipse-plugin.

.. без проблем, пока вы что-то не измените в конфигурации POM - тогда вам нужно снова запустить mvn eclipse:eclipse и воссоздать конфигурацию проекта eclipse в соответствии с новым POM.. важно не забывать об этом шаге, если только ваш проект в IDE не выиграл не работает должным образом, и вам будет интересно, почему ;)

Лично я не считаю это решение лучшим, но именно так люди из Eclipse работают с Maven:/

Надеюсь, это вдохновит вас хотя бы :)

person Martin Lazar    schedule 24.08.2009
comment
Спасибо за предложения, Мартин - я не против Eclipse, а ваши идеи хороши для работы со стандартными проектами Eclipse. Мой вопрос связан конкретно с продуктом MyEclipse Genuitec, который включает в себя некоторые специальные плагины для создания наборов проектов, которые генерируют артефакты для конкретных проектов (web.xml, ejb-jar.xml и т. д.) и создают/развертывают проекты для вас. - person cwash; 24.08.2009
comment
Это не должно быть проблемой, я думаю. В нашей компании мы все также используем MyEclipse, я только что написал об Eclipse, потому что эта процедура является общей для Eclipse/MyEclipse. Сборка/развертывание в Eclipse не зависит от сборки/развертывания Maven — например, мы должны настроить путь сборки проекта MyEclipse, чтобы включить файлы xml и html в сборку. Это связано с тем, что MyEclipse не использует pom.xml для сборки, а строит проект в соответствии с файлами проекта MyEclipse. Это означает, что вы можете настроить процессы сборки/развертывания Maven и сборки/развертывания MyEclipse отдельно. - person Martin Lazar; 24.08.2009
comment
Это означает, что вы можете настроить процессы сборки/развертывания Maven и сборки/развертывания MyEclipse отдельно. Правильно, но это то, чего я пытаюсь избежать - поддерживать 2 разных процесса сборки. Похоже, пока MyEclipse не поддерживает безголовый режим, единственное, что вы можете сделать, это перепроектировать то, что он делает, в дружественной манере Ant или Maven. - person cwash; 27.08.2009
comment
Ага, теперь понятно :) Боюсь, вы правы с реверс-инжинирингом :/ - person Martin Lazar; 31.08.2009

Это еще одна причина, по которой я очень не люблю Eclipse. Тот факт, что IDE может заставить вас отказаться от чего-то, что считается лучшей практикой, позорен.

«AFAIKT, нет функции OOTB, которая может генерировать сценарий Ant (или эквивалентный сценарий безголовой сборки) из MyEclipse» - я не уверен, что понимаю, почему это проблема. Можно за час или два написать простой файл Ant build.xml, который подойдет для большинства приложений Java EE, упакованных в виде файлов WAR. Я не знаю, используете ли вы EJB, но даже добавление конкретных задач сервера приложений, таких как компиляция EJB и JSP, не будет большой проблемой. Если вы сможете договориться об общей структуре каталогов, ее можно будет даже повторно использовать в разных проектах.

Имея под рукой Ant build.xml, вы сможете управлять своим процессом непрерывной интеграции, просто зарегистрировавшись в Subversion. Плагины Eclipse для этого хорошо работают, я слышал.

Если это действительно проблема, я бы рекомендовал IntelliJ. Он отлично работает с CI на основе Cruise Control или Hudson или собственного Team City от Jet Brains. Стоимость не завышена и быстро себя окупит.

Если я неправильно понял ваш вопрос, прошу прощения. Но если я все понял правильно, то я ни за что не позволю IDE диктовать команду таким образом.

person duffymo    schedule 25.08.2009
comment
Согласен с вашими философскими моментами здесь. Существует большая кодовая база, множество различных проектов, созданных с помощью этого продукта MyEclipse (похожего на Rational, слой поверх Eclipse), и он решает множество проблем управления зависимостями и упаковки для разработчика. Он довольно хорошо справляется с тем, что пытается решить. Единственная проблема заключается в том, что он не предоставляет интерфейс, который может создавать код вне среды IDE. Разработчики явно не видят в этом проблемы. Как вы заметили, я могу реконструировать скрипты Ant, но это будет кошмар для кодовой базы такого размера. - person cwash; 25.08.2009