2012-03-26 3 views
2

Как настроить Spring STS для работы с существующим многомодульным проектом Roo или создать новый с нуля?Каков правильный способ создания нового проекта Spring Roo с несколькими модулями maven?

Давайте рассмотрим первый случай: создание проекта за пределами STS с оболочкой Roo.

Все, что я делаю, это создание родительского проекта и добавление к нему модуля maven. Я не устанавливал JPA или не создавал никаких объектов.

При импорте такого проекта (как существующего проекта Maven) Spring STS не привязывает характер проекта Java. В результате я не могу использовать вспомогательные функции IDE или выполнять рефакторинг (STS жалуется, что код не находится на пути сборки).

Во втором случае я просто хочу создать новый проект из STS и начать использовать Roo с несколькими модулями maven, которые будут созданы позже.

При использовании мастера создания новой Spring Roo я выбираю тип пакета, который должен быть «POM», и пусть мастер выполняет свою работу. Однако ошибки отображаются в представлении «Проблемы». STS жалуется, что не может найти ожидаемые исходные папки (например, src/main/java ...).

Почему это так чертовски сложно?

Спасибо, Джефф

ответ

0

Прежде всего, если вам нужно работать с проектом на основе Ей консоли в Eclipse, - вам нужно запустить perform eclipse в вашей оболочке Spring Roo. Внутри он вызывает Maven Eclipse Plugin и запускает mvn eclipse:eclipse, чтобы убедиться, что ваш проект Maven можно успешно импортировать в Eclipse/STS.

Сведения о проектах с несколькими модулями см. В существующих вопросах, связанных с проектами с несколькими модулями в StackOverflow.

Cheers.

+0

я провел несколько дней на этой неделе, играя с Роо и СТС, и обнаружили, что некоторые события не получают сообщаться между тоже. Это может привести к запутанному проекту, потому что вы ожидали, что инструмент что-то сделает. Я документировал то, что нашел, с шагами по воспроизведению и моими решениями здесь: http://www.brainwreckage.com/2012/03/project-synchronization-problems-with.html –

+0

Отлично. Большинство проблем, о которых вы упомянули, можно решить, просто включив опцию Refresh using native hooks или polling в настройках рабочей области eclipse. – bhagyas

+0

Я пробовал ваше предложение, но результаты те же, что и за двумя исключениями: В первом тестовом примере, шаг 12, STS правильно создала папку src/main/resources. В третьем тестовом примере, шаг 12, при открытии файла pom.xml, STS не жаловался на исключение NullPointerException. Помимо этих двух отличий все описанные проблемы все еще встречаются. Попробуйте сами. Если у вас разные результаты, я бы очень хотел узнать. -Jeff –

1

Хорошо, я некоторое время использовал Roo и замечал те же аномалии, о которых вы только что сообщили. Я еще не проверял ваш блог, но отмечен для дальнейшего чтения.

В любом случае, для моих проектов с несколькими модулями я обычно создаю их внутри или снаружи STS. Оба из них приводят к тем же проблемам, о которых вы сообщали (# 1 неправильная структура родительского проекта, а не поиск src и # 2, разлагающие проекты после импорта в качестве проектов Maven).

Прежде всего я хотел бы пояснить, что вам не нужно запускать «выполнять затмение» перед импортом проекта в STS или любую версию Eclipse с плагином Maven. Импорт будет работать (с предыдущими недостатками) только по опции «Импорт Maven Project» (и это также явно написано в руководстве Roo).

Что касается проблем, о которых мы говорим, то я обычно удаляю природу Roo из POM дочерних проектов, чтобы не открывать Roo Shell (если это происходит, Roo имеет тенденцию удалять некоторые .aj-файлы и, как вы сказали, это повредит вашему проекту). Затем я придерживаюсь Roo только, используя внутри родительского проекта, а затем используя команду «focus center» для работы с дочерними проектами.

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

С наилучшими пожеланиями, Тьяго Уриэль