Введение в Spring Roo: Часть 1. Сборка из исходного кода

Spring Roo – это облегченная эффективная Java-среда, упрощающая и ускоряющая разработку Spring-приложений. Приложения, созданные с использованием Spring Roo, следуют передовым методикам Spring и основаны на таких стандартах, как JPA, Bean Validation (JSR-303) и Dependency Injection (JSR-330). Roo предоставляет удобную контекстно-зависимую с автозавершением по нажатию Tab оболочку для создания приложений. Spring Roo является расширяемой системой и позволяет добавлять дополнения (add-on), улучшающие ее функциональные возможности. В данной статье представляется Spring Roo и приводятся пошаговые инструкции по сборке Spring Roo из исходного кода на системах Windows® и *nix.

Шекхар Гулати, старший консультант, Xebia

Шекхар Гулати (Shekhar Gulati) работает Java-консультантом в Xebia India. Более шести лет он занимается корпоративными Java-приложениями. Имеет обширный опыт работы со Spring-проектами, такими как Spring, Spring-WS и Spring Roo. В сферу его интересов входят Spring, базы данных NoSQL, Hadoop, RAD-среды (такие как Spring Roo), облачные вычисления (в основном PaaS-сервисы, такие как Google App Engine, CloudFoundry, OpenShift). Является активным автором статей для JavaLobby, Developer.com, IBM developerWorks и своего собственного блога http://whyjava.wordpress.com/. Связаться с ним можно в Твиттере (@ http://twitter.com/#!/shekhargulati).



10.04.2012 (Впервые опубликовано 20.02.2013)

Введение

Среда Spring была выпущена в конце 2002 года для упрощения разработки J2EE-приложений (сейчас JavaEE). В течение последних 8 лет Spring успешно выполняла эту миссию, предоставляя такие понятные и удобные Java-инфраструктуры и функциональные возможности, как Spring Security, Spring MVC, управление транзакциями, Spring-пакеты и Spring-интеграция. Создатели Spring решили еще больше облегчить жизнь Java-разработчиков и повысить их производительность. Для этого было создано средство разработки под названием Spring Roo.

Spring Roo (см. раздел Ресурсы) представляет собой расширяемый текстовый RAD-инструмент с открытыми исходными кодами для Java-технологии. Это мощный ресурс для создания и управления Spring-приложениями. Его миссию можно определить так:

Предназначение Roo состоит в фундаментальном и устойчивом повышении производительности труда Java-разработчиков без ущерба для целостности и гибкости процесса разработки.

Эта цель воплощена в основанном на Java-технологии инструментарии, который повышает производительность на протяжении всего жизненного цикла проекта и не ограничивает разработчиков рамками одной методики. Spring Roo использует популярные, надежные и проверенные временем библиотеки, такие как Spring, Java Persistence API, Java Server Pages (JSP), Spring Security, Spring Web Flow, Log4J и Maven. Приложения, сгенерированные Roo, используют такие стандарты, как Bean Validation (JSR-303) и Dependency Injection (JSR-330) и придерживаются передовой SpringSource-сертифицированной архитектуры.

При помощи Spring Roo можно добавлять и настраивать такие функциональные возможности, как JPA, Spring MVC, Spring Security, ведение журналов при помощи Log4j, среды тестирования JUnit и Selenium, Solr, JMS, электронную почту и многое другое, просто вводя команды в командной оболочке Roo. Время, сэкономленное благодаря Roo на добавлении этих возможностей, повышает производительность разработчиков. Roo не может создавать бизнес-логику, но может управлять инфраструктурой или настройкой приложения.

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

В статье рассматривается процесс создания простого Web-приложения с использованием оболочки Roo Shell и демонстрируется, как собрать Spring Roo из исходного кода в операционных системах Windows или Ubuntu.


Начало работы с Roo Shell

Загрузив программную оболочку Roo и взаимодействуя с ней при помощи команд, можно настраивать приложение и управлять им. Roo Shell – это имеющий автозавершение по нажатию Tab, контекстно-зависимый, предоставляющий подсказки командный процессор. При помощи команды hint можно запросить Spring Roo о дальнейшем логическом действии. Roo достаточно интеллектуален и может порекомендовать следующее действие в зависимости от контекста приложения. Допустим, например, что вы создали логический объект, используя команду entity. Затем вы выполняете команду hint. Roo подскажет, что к вашему логическому объекту нужно добавить поля, используя команду field. Такая функциональность упрощает освоение Roo и делает его отличным средством обучения. Можно создать приложение с нуля, просто следуя указаниям Roo и выполняя команды hint, не обращаясь к документации.

Предварительные требования

Перед началом работы с Roo необходимо установить следующее программное обеспечение:

  1. Java V6 JDK.
  2. Apache Maven V2.0.9 или выше.

Установка Spring Roo

Для установки автономной версии Spring Roo:

  1. Можно загрузить автономный командный процессор Roo или использовать встроенный плагин Roo SpringSource Tool Suite (STS). Я рекомендую загрузить и использовать обе версии, поскольку STS предоставляет много дополнительных функциональных возможностей Eclipse для Spring-приложений:
    1. Spring Roo.
    2. SpringSource Tool Suite.
  2. Разархивируйте Spring Roo в выбранный вами каталог.
  3. Установите переменную среды:
    1. В операционной системе Windows добавьте %ROO_HOME% /bin в переменную среды path, где ROO_HOME – это путь к разархивированным файлам Roo.
    2. В операционной системе *nix создайте символьную ссылку на $ROO_HOME/bin/roo.sh

      (например, sudo ln -s ~/spring-roo-1.x.x/bin/roo.sh /usr/bin/roo).

Создание приложения

Чтобы убедиться в мощных возможностях Roo, давайте создадим простое корпоративное приложение conference для проведения конференций. Приложение conference имеет два логических объекта: Speaker (докладчик) и Talk (доклад). Докладчик может выступать с несколькими докладами, а каждый доклад делает только один докладчик. На рисунке 1 представлена простая диаграмма классов.

Рисунок 1. Диаграмма классов Speaker Talk
Рисунок 1. Диаграмма классов Speaker Talk

Создание приложения:

  1. Откройте процессор командной строки вашей операционной системы.
  2. Создайте каталог conference, используя команду mkdir.
  3. Перейдите в каталог conference.
  4. Введите roo. Эта команда активизирует Roo Shell, как показано в листинге 1.
Листинг 1. Запуск Roo Shell
C:\Users\xebia\demo\conference>roo
    ____  ____  ____
   / __ \/ __ \/ __ \
  / /_/ / / / / / / /
 / _, _/ /_/ / /_/ /
/_/ |_|\____/\____/       1.1.B.RELEASE [rev 793f2b0]
Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER.
roo>

Теперь, находясь внутри оболочки Roo Shell, мы можем ввести команду Roo hint для получения рекомендаций по дальнейшим действиям. Команда hint предлагает создать новый основанный на Maven Spring-проект при помощи команды project (см. листинг 2).

Листинг 2. Использование команды hint в Roo Shell
Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER.
roo> hint
Welcome to Roo! We hope you enjoy your stay!
Before you can use many features of Roo, you need to start a new project.

To do this, type ’project’ (without the quotes) and then hit TAB.

Enter a --topLevelPackage like ’com.mycompany.projectname’ (no quotes).
When you're finished completing your --topLevelPackage, press ENTER.
Your new project will then be created in the current working directory.

Note that Roo frequently allows the use of TAB, so press TAB regularly.
Once your project is created, type ’hint’ and ENTER for the next suggestion.
You're also welcome to visit http://forum.springframework.org`for Roo help.
roo>

Следуя этой рекомендации, мы создадим проект при помощи команды project. Эта команда имеет один обязательный атрибут topLevelPackage, указывающий имя корневого пакета. Кроме обязательного атрибута мы будем использовать два дополнительных: java (для указания версии Java) и projectName (для указания имени проекта). Введите:

	project --topLevelPackage com.dw.roo.conference --java 6 --projectName conference

Эта команда создаст основанный на Maven V2 Spring-проект, как показано ниже:

	Created C:\Users\xebia\demo\conference\pom.xml
	Created SRC_MAIN_JAVA
	Created SRC_MAIN_RESOURCES
	Created SRC_TEST_JAVA
	Created SRC_TEST_RESOURCES
	Created SRC_MAIN_WEBAPP
	Created SRC_MAIN_RESOURCES\META-INF\spring
	Created SRC_MAIN_RESOURCES\META-INF\spring\applicationContext.xml
	Created SRC_MAIN_RESOURCES\log4j.properties

Снова введите hint, чтобы узнать следующее действие. На этот раз Roo предлагает настроить механизм персистентности. Введите команду persistence setup и трижды нажмите клавишу Tab. Отобразятся варианты для --provider. Нажмите клавишу H, а затем Tab для автозавершения HIBERNATE. После выбора поставщика нажмите Tab для выбора базы данных; вы увидите несколько вариантов. Поскольку в качестве поставщика данных используется Hibernate, мы не можем выбрать нереляционную базу данных, такую как Google App Engine. Пока мы будем использовать базу данных HYPERSONIC_IN_MEMORY.

	persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY

Есть и другие необязательные атрибуты (например, username и password), которые нам здесь не нужны.

Теперь, когда у нас есть механизм персистентности, мы снова используем команду hint. На этот раз нам предлагается создать логические объекты, используя команду entity. Команда entity используется для создания реальных доменных объектов и имеет один обязательный атрибут class, указывающий имя логического объекта. Кроме обязательного атрибута --class мы будем использовать атрибут --testAutomatically, который создает тесты интеграции для доменного объекта. Создадим два логических объекта: Speaker и Talk.

	entity --class ~.domain.Speaker –testAutomatically
	
	entity --class ~.domain.Talk --testAutomatically

Я использовал знак ~ в качестве заместителя пакета верхнего уровня.

Команда entity создаст расширяемый многофункциональный JPA-объект. Созданные логические объекты будут иметь JPA @Entity с ID, версию, EntityManager и конструктор без аргументов. Сгенерированный логический объект будет иметь методы persist, merge, remove, flush, count, find, findById и др. При просмотре результатов выполнения этой команды можно заметить, что она помимо создания Java-файлов (для Speaker и Talk) создала также AspectJ-файлы, имена которых заканчиваются на *Roo_*.aj. Эти *Roo_*.aj-файлы называются Intertype Declaration (межтиповые объявления или ITD-объявления), Mixins (примеси) или Introductions (вставки). Roo использует ITD-объявления в качестве артефакта генерирования кода. ITD-объявления позволяют Roo генерировать код в отдельном модуле компиляции, но во время компиляции они объединяются в один откомпилированный класс. ITD-объявления AspectJ используются для автоматического генерирования полей ID и version, а также getter- и setter-методов для персистентных полей в доменных классах.

При повторном использовании команда hint предлагает добавить поля в логический объект при помощи команды field. Добавим некоторые поля в объект Speaker:

	field string --fieldName firstname --class ~.domain.Speaker --notNull 
	field string --fieldName lastname --notNull 
	field string --fieldName email --unique --notNull 
	field string --fieldName organization 
	field date --fieldName birthdate --type java.util.Date --past --notNull 
	field number --type java.lang.Long --fieldName age --min 25 --max 60

Параметр --class позволяет указать класс, к которому мы хотим добавить поля.

Команду field можно использовать для указания специальных проверочных аннотаций JavaBean при помощи параметров --max, --min и др. Можно также указать JPA-аннотации с помощью параметров --fetch, --column, --unique и др. Для полей дат можно также указать дату прошедшего или будущего времени (см. выше). Благодаря команде field помнить эти аннотации не обязательно.

Теперь добавим несколько полей в логический объект Talk:

	field string --fieldName title --class ~.domain.Talk --notNull 
	field string --fieldName description --notNull --sizeMax 4000

Итак, мы создали логические объекты и добавили в них поля, но не указали связь между ними. Связь между Speaker и Talk имеет тип ONE_TO_MANY (один докладчик может выступить несколько раз). Связь указывается в команде field:

	field set --fieldName talks --type ~.domain.Talk --class \
~.domain.Speaker --cardinality ONE_TO_MANY
	
	field reference --fieldName speaker --type ~.domain.Speaker \
--class ~.domain.Talk –-notNull

Теперь нам нужно построить Web-уровень для приложения conference. Это делается при помощи команды controller. Самый удобный способ генерирования контроллеров и всех связанных с ними Web-артефактов дает команда controller all.

	controller all --package ~.web

При первом использовании команды controller в проект добавятся также дополнительные зависимости, такие как Spring MVC и Tiles. Выполнение этой команды может потребовать некоторого времени, поскольку должны загрузиться все зависимости (если они отсутствуют в вашем репозитории Maven). Эта команда демонстрирует также одну из возможностей Roo: зависимости добавляются только по необходимости.

Затем необходимо настроить log4j, используя команду logging:

	logging setup --level INFO --package ALL_SPRING

И, наконец, перед выходом из Roo Shell необходимо запустить тесты интеграции, которые были сгенерированы, когда мы указали параметр --testAutomatically в команде entity. Для запуска этих тестов из оболочки введите команду perform tests.

Roo делегирует выполнение этих тестов системе Maven, т.е. perform tests эквивалентно команде mvn test. Выйдите из оболочки, выполнив команду q или quit.

Эти команды создадут полнофункциональное приложение conference. Выполним это приложение.

Для запуска приложения выполните команду mvn tomcat:run, запускающую сервер jetty. Откройте Web-браузер и перейдите по адресу http://localhost:8080/conference/. Вы увидите экран, показанный на рисунке 2.

Рисунок 2. Домашняя страница приложения conference
Рисунок 2. Домашняя страница приложения conference

Для создания объекта Speaker можно нажать кнопку Create new Speaker. Можно также просматривать, изменять и удалять пользователей, нажав кнопку List all Speakers. Таким же способом можно создать объект Talk, но только после создания Speaker.

Это простое приложение, но оно показывает, насколько просто создается новое Spring-приложение с нуля за несколько минут. Во второй части данной серии статей я покажу, как создать приложение, используя различные функциональные возможности и дополнения Roo.

Теперь, после создания простого приложения, я покажу, как можно собрать Spring Roo из исходного кода на Windows и Ubuntu.


Сборка Spring Roo из исходного кода

Текущая версия Spring Roo имеет номер V1.1.0; идет активная разработка версии V1.1.1. Может быть несколько причин для сборки Spring Roo из исходного кода:

  1. Spring Roo не имеет ночных сборок, поэтому для использования новейших возможностей необходимо собрать Spring Roo их исходного кода.
  2. Вы хотите участвовать в разработке проекта Spring Roo.
  3. Вы хотите написать дополнения для Spring Roo.
  4. Вы просто хотите поэкспериментировать с исходным кодом Spring Roo.

Результат

В конце данного раздела вы сможете запустить Maven-сборку самого свежего исходного кода Spring Roo в операционных системах Windows и *nix. Вы сможете работать с новейшей системой Spring Roo и импортировать проекты Spring Roo в Eclipse или STS (SpringSource Tool Suite).

Процесс сборки Spring Roo из исходного кода в Ubuntu

Процесс сборки из исходного кода в Ubuntu (и других *nix-системах) несложен. Просто выполните следующие действия:

  1. Установите Git – распределенную систему управления версиями исходного кода. Для ее установки в операционную систему Ubuntu выполните команду sudo apt-get install git-core gitk.
  2. Получите исходный код Spring Roo при помощи Git, для чего выполните команду git clone git://git.springsource.org/roo/roo.git. Вы увидите в домашнем каталоге папку roo, содержащую весь исходный код Roo.
  3. GnuPG позволяет шифровать и подписывать электронной подписью данные и сообщения, а также предоставляет универсальную систему управления ключами и модули доступа для каталогов открытых ключей всех видов. Roo использует GPG для автоматического подписания результатов сборки.
  4. Выполните команду gpg --list-secret-keys. Примерные результаты приведены в листинге 3.
    Листинг 3. Результат работы команды gpg list
    C:\dev\roo-sourcecode\roo>gpg --1ist-secret-keys
    C:/Users/xebia/AppData/Roaming/gnupg\secring.gpg
    sec 2048R/2F96093B 2010-07-03
    uid                shekhar (spring-roo) <shekhargu1ati84@gmai1.com>
    ssb 2048R/B77E5C63 2010-07-03
    C:\dev\roo-sourcecode\roo>_
  5. Если результаты не отображаются, необходимо сначала создать ключ. Используйте команду gpg –gen-key, которая поможет вам выполнить действия по созданию ключа. Затем убедитесь, что ваш новый ключ был сгенерирован при помощи команды gpg –list-secret-keys.
  6. Теперь необходимо опубликовать ваш ключ на сервере открытых ключей. Обратите внимание на идентификатор ключа sec, показанный командой –list-secret-keys. В моем случае идентификатор ключа имел значение 2F96093B. Поместите ваш открытый ключ на сервер ключей при помощи команды gpg –keyserver hkp://pgp.mit.edu –send-keys 2F96093B (измените идентификатор ключа в конце строки).
  7. Некоторым модулям Roo нужны JAR-файлы, которые не существуют в OSGi-форме, т.е. не имеют OSGi-манифеста. Roo имеет специальный проект wrapping, который может преобразовывать обычные JAR-файлы в JAR-файлы OSGi. Этот инструмент поддержки оберток необходимо запускать до начала работы с Roo. В противном случае вы увидите сообщение об ошибке, указывающее, что Maven не может найти org.springframework.roo.wrapping.какой-либо_модуль. Для создания встроенных JAR-файлов в корневой папке Roo выполните команду:
    	cd wrapping
    	mvn clean install 
    	cd..
  8. Затем выполните команду mvn clean install. На вашей системе должен быть установлен Maven V2. В противном случае установите его сейчас. Maven будет запрашивать пароль или идентификационную фразу для вашего ключа (идентификационная фраза вводится при создании GPG-ключа) при каждой сборке исходного кода. Введите идентификационную фразу и нажмите кнопку Enter. Сборка из исходного кода продлится несколько минут.

Процесс сборки Spring Roo из исходного кода в Windows

Сборка из исходного кода в Windows несколько сложнее, чем в Ubuntu. Выполните следующие действия:

  1. Установите Git – распределенную систему управления версиями исходного кода. Прежде всего необходимо установить Git в вашей операционной системе Windows. У себя я установил msysGit. Если Git уже установлена, можете пропустить это действие. Во время установки msysGit появится запрос на ввод местоположения установки. Откроется окно командной строки и начнет выполняться множество команд. Это будет продолжаться около минуты. После установки вы увидите экран, приведенный в листинге 4.
    Листинг 4. Установка msysGit
            { test "$bindir/" = "$execdir/" || \
                   { rm -f "$execdir/git.exe" && \
                   test -z "" &amp;&amp; \
                   ln "$bindir/git.exe" "$execdir/git.exe" 2>/dev/null || \
                   cp "$bindir/git.exe" "$execdir/git.exe"; } ; } && \
            { for p in git-add.exe git-annotate.exe git-apply.exe git-archive.exe 
    git-bisect--helper.exe git-blame.exe git-branch.exe git-bundle.exe git-cat-file.exe 
    git-check-attr.exe git-check-ref
                    rm -f "$execdirf$p" && \
                    ln "Sexecdir/git.exe" "Sexecdir/$p" 2>/dev/null ll \
                    ln -s "git.exe" "$execdir/$p" 2>/dev/null || \
                    cp "Sexecdir/git.exe" "$execdir/$p" Il exit; \
             done; } && \
            { test x"git-renote-https.exe git-renote-ftp.exe \
    git-renote-ftps.exe" = x ll \
                    { for p in git-remote-https.exe git-remote-ftp.exe \
    git-remote-ftps.exe; do \
                    rm -f "$execdir{$p" && \
                    ln "Sexecdir/git-remote-http.exe" "$execdir/$p" 2>/dev/null ll \
                    ln -s “git-renote—http.exe" "$execdir/$p" 2>/dev/null || \
                    cp "Sexecdir/git-remote-http.exe" "Sexecdir/$p" ll exit; \
              done; } ; } && \
            ./check_bindir "z$bindir" "z$execdir" "Sbindir/git—add.exe"
    
    -------------------------
    Hello, dear Git developer.
    
    This is a minimal MSYS environment to work on Git.
    
    You are in the git working tree, and all is ready for you to hack.
    
    Welcome to msysGit
    
    Run 'git help git' to display the help index.
    Run 'git help <command>' to display help for specific commands.
    Run '/share/msysGit/add-shortcut.tcl' to add a shortcut to msysGit.
    
    It appears that you installed msysGit using the full installer.
    To set up the Git repositories, please run /share/msysGit/initialize.sh
  2. Установите переменную среды Git. Git необходимо указать в переменной path операционной системы Windows. Добавьте ${MSYSGIT}\msysgit\bin и {MSYSGIT}\msysgit\mingw\bin в переменную Windows path, где ${MSYSGIT} – это местоположение установки msysGit. Откройте новое окно командной строки и выполните команду git. Результат показан на рисунке 7.
    Листинг 5. Окно командной строки Git
    C:\>git
    usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [--html-path]
               [-pl--paginate|I--no-pager] [--no-replace-objects]
               [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE]
               [-c name=value
               [--help] COMMAND [ARGS]
    The most commonly used git commands are:
       add        Add file contents to the index
       bisect     Find by binary search the change that introduced a bug
       branch     List, create, or delete branches
       checkout   Checkout a branch or paths to the working tree
       clone      Clone a repository into a new directory
       commit     Record changes to the repository
       diff       Show changes between commits, commit and working tree, etc
       fetch      Download objects and refs from another repository
       grep       Print lines matching a pattern
       init       Create an empty git repository or reinitialize an existing
       log        Show commit logs
       merge      Join two or more development histories together
       mv         Move or rename a file, a directory, or a symlink
       pull       Fetch from and merge with another repository or a local bra
       push       Update remote refs along with associated objects
       rebase     Forward-port local commits to the updated upstream head
       reset      Reset current HEAD to the specified state
       rm         Remove files from the working tree and from the index
       show       Show various types of objects
       status     Show the working tree status
       tag        Create, list, delete or verify a tag object signed with GPG
    
    See ’git help COMMAND’ for more information on a specific command.
    C:\>_
  3. Проверьте Spring Roo при помощи Git. На этом шаге мы создадим локальный клон Spring Roo, получив при помощи Git свежую версию исходного кода. Откройте окно командной строки и перейдите в местоположение, куда вы хотите получить Spring Roo. Выполните команду git clone git://git.springsource.org/roo/roo.git. Дождитесь ее завершения. Эта команда создаст новую папку roo в месте, куда вы хотели получить Spring Roo.
  4. Загрузите и установите GPG для Windows. GnuPG – это GNU-программа для защищенного обмена данными и хранения данных. Ее можно использовать для шифрования данных и создания цифровых подписей. Roo использует GPG для автоматического подписания результатов сборки. После установки GPG выполните команду gpg –list-secret-keys. Должна отобразиться информация, аналогичная приведенной в листинге 6.
    Листинг 6. Результат работы команды gpg list
    C:\dev\roo-sourcecode\roo>gpg --1ist-secret-keys
    C:/Users/xebia/AppData/Roaming/gnupg\secring.gpg
    sec 2048R/2F96093B 2010-07-03
    uid                shekhar (spring-roo) <shekhargu1ati84@gmai1.com>
    ssb 2048R/B77E5C63 2010-07-03
    C:\dev\roo-sourcecode\roo>_
  5. Если результаты не отображаются, необходимо сначала создать ключ. Используйте gpg –gen-key. Эта команда поможет вам выполнить действия по создания ключа. Затем убедитесь, что ваш новый ключ был сгенерирован при помощи команды gpg –list-secret-keys.
  6. Опубликуйте ключ на сервере открытых ключей. Обратите внимание на идентификатор ключа sec, показанный командой –list-secret-keys. В моем случае идентификатор ключа имел значение 2F96093B. Поместите ваш открытый ключ на сервер ключей при помощи команды gpg –keyserver hkp://pgp.mit.edu –send-keys 2F96093B (измените идентификатор ключа в конце строки).
  7. Сначала выполните сборку проекта wrapper. Некоторым модулям Roo нужны JAR-файлы, которых уже нет в OSGi-виде. Т.е. они не имеют OSGi-манифеста. Roo имеет специальный проект wrapping, который может преобразовывать обычные JAR-файлы в JAR-файлы OSGi. Необходимо запускать wrapper до начала работы с Roo. В противном случае вы увидите сообщения об ошибке, указывающее, что Maven не может найти org.springframework.roo.wrapping.какий-либо_модуль. Для создания встроенных JAR-файлов из корневой папки Roo выполните команду:
    	cd wrapping
    	mvn clean install 
    	cd..
  8. Выполните команду mvn clean install. На вашей системе должен быть установлен Maven V2. В противном случае установите его сейчас. Maven будет запрашивать пароль или идентификационную фразу для вашего ключа (идентификационная фраза вводится при создании GPG-ключа) при каждой сборке исходного кода. Введите идентификационную фразу и нажмите кнопку Enter. Сборка исходного кода продлится несколько минут.
  9. В настройках вашей системы установите переменную окружения ROO-DEV, которая должна указывать на папку начальной загрузки в проекте Roo. Следует также добавить эту переменную в переменную окружения PATH, как показано на рисунке 3.
Рисунок 3. Установка переменной ROO-DEV
Рисунок 3. Установка переменной ROO-DEV

Теперь вы можете работать с последней версией Roo. Откройте окно командной строки, создайте новую папку mkdir roo_dev_demo и выполните команду roo-dev. На экране должна отобразиться информация, приведенная в листинге 7.

Листинг 7. ROO-DEV Shell
C:\Users\xebia\demo\conference>roo
    ____  ____  ____
   / __ \/ __ \/ __ \
  / /_/ / / / / / / /
 / _, _/ /_/ / /_/ /
/_/ |_|\____/\____/       1.1.B.RELEASE [rev 793f2b0]
Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER.
roo>

Возможно, вы захотите обновить исходный код Spring Roo, для того чтобы работать с самой последней версией Spring Roo. Откройте окно командной строки и перейдите в папку с исходными кодами Spring Roo. Выполните команду git pull, которая поместит все удаленные изменения в ваш локальный клон, а затем выполните команду mvn clean install для сборки обновленных исходных кодов.


Заключение

Итак, мы создали простое Web-приложение, даже не открывая редактор и не обращаясь к документации. Приложение позволяет выполнять CRUD-операции с логическими объектами. Я надеюсь, вы оценили, какое серьезное повышение производительности обеспечивает Roo Java-разработчикам. Этот инструмент использует проверенные временем стабильные технологии, знакомые большинству разработчиков.

Во второй части серии мы сделаем наше приложение более защищенным, добавим поддержку интернационализации и систему обмена сообщениями (SMTP и JMS), а также настроим приложение. Мы также рассмотрим предусмотренную в Roo функциональность инженерного анализа баз данных и преобразуем наше приложение в полнофункциональное корпоративное приложение.

Ресурсы

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Open source, Технология Java
ArticleID=858626
ArticleTitle=Введение в Spring Roo: Часть 1. Сборка из исходного кода
publish-date=04102012