Могу ли я использовать Spring roo в существующем проекте, который не использует Maven? - PullRequest
5 голосов
/ 05 августа 2009

Spring Roo можно использовать в существующих проектах, которые следуют стандартному макету maven . Пока что это означает, что проектам, в которых не используется Maven, не повезло.

Мне интересно, какие (если таковые имеются) варианты для таких существующих проектов.

Реорганизовать макет проекта в соответствии с макетом Maven? Это представляется очень трудным путем для проектов с многолетней историей в CVS, поскольку метод перемещения по каталогам в CVS чрезвычайно инвазивен.

Есть ли другие варианты, такие как изменение конфигурации Maven для работы с нестандартными макетами? Из того, что я помню из моего предыдущего прочтения на эту тему, подход Maven CoC не поддерживает такие нестандартные макеты.

Edit:

Ответ Рича ниже показывает, что переопределение значений по умолчанию в супер-помпе тривиально. Это оставляет нас с вопросом, будет ли Spring Roo хорошо играть с такими модификациями. Это сомнительно, учитывая тот факт, что Spring Roo не использует сам Maven.

Изменить:

Обновленный ответ Рича показывает, что по умолчанию ROO будет использовать жестко закодированные пути и не будет выбирать модификации в вашем pom.xml Таким образом, на данный момент ответ, как представляется, заключается в том, что это невозможно из коробки, но можно сделать с помощью некоторого пользовательского кода (или попросить команду ROO поддержать это)

Ответы [ 3 ]

2 голосов
/ 09 января 2010

Нет никакой причины, по которой мы (команда Roo) не можем разрешить MavenPathResolver разрешать использование пользовательских путей, и одна из преднамеренных причин, по которой я создал абстракцию PathResolver, заключалась в том, чтобы поддерживать настройку общих расположений путей не только для расположений, отличных от Maven. но также и для других систем сборки, таких как Ant + Ivy. все базовые дополнения Roo были написаны для использования PathResolver, поэтому не должно быть серьезных усилий для поддержки этого. Пожалуйста, добавьте запрос улучшения к экземпляру Roo Jira , если вам все еще нужна эта поддержка.

2 голосов
/ 05 августа 2009

Вы можете изменить Maven, чтобы использовать другой набор соглашений. Стандартный набор наследуется от Maven super POM и может быть переопределен путем переопределения соответствующего свойства.

Например, чтобы изменить исходный каталог с src / main / java на src, тестовый каталог на test-src и каталог ресурсов с src / main / resources на ресурсы, вы должны указать в своем POM следующее:

<build>
  <sourceDirectory>src</sourceDirectory>
  <testSourceDirectory>test-src</testSourceDirectory>
  <resources>
    <resource>
      <directory>resources</directory>
    </resource>
  </resources>
</build>

Имейте в виду, что некоторые плагины могут не использовать стандартные свойства для доступа к местоположениям (например, жесткое кодирование цели / классов вместо использования $ {project.build.outputDirectory}), поэтому у вас может возникнуть странная проблема.


Обновление: похоже, что Roo в настоящее время имеет эти свойства, жестко заданные . Вы можете заменить MavenPathResolver или добавить дополнительный распознаватель для использования пользовательских свойств.

Если это реальная проблема для вас, вы можете подать запрос , чтобы модифицировать MavenPathResolver, чтобы разрешить настраиваемые расположения.

1 голос
/ 18 января 2012

Начиная с версии 1.2 он не реализован.

...