Руководство по началу работы с платформой NetBeans с использованием Maven
В данном документе представлено краткое описание способов создания простого приложения и модуля платформы NetBeans, а также использования Maven для платформы построения. Для создания приложения и модуля платформы NetBeans в этом документе используются архетипы Maven. Для создания оконного компонента в модуле используется инструментарий интерфейса пользователя Swing и конструктор графического интерфейса пользователя Matisse. Модульный аспект платформы NetBeans позволяет разрабатывать и расширять функциональные возможности приложения, добавляя новые модули.
Этот документ базируется на руководстве по началу работы с платформой NetBeans на основе приложения Ant и демонстрирует некоторые различия между использованием Ant и Maven для разработки приложений платформы NetBeans. После изучения отличий Maven от Ant можно легко пройти другие учебные курсы в Учебной карте по платформе NetBeans.
При отсутствии опыта работы с платформой NetBeans рекомендуется просмотреть серию демонстрационных роликов 10 лучших интерфейсов API NetBeans.
Для работы с этим учебным курсом требуется программное обеспечение и ресурсы, перечисленные в следующей таблице.
Для разработки приложений на платформе NetBeans не требуется загружать отдельную версию этой платформы. Как правило, разработка приложений и модулей осуществляется в среде IDE NetBeans, затем необходимо просто включить требуемые модули для выполнения платформы NetBeans и созданного приложения.Перед изучением этого учебного курса можно ознакомиться со следующей документацией:
Настройка Maven
Если это первый опыт работы с Maven, следует проверить параметры настройки Maven в окне "Параметры". Для работы с этим учебным курсом необходимо установить Maven на локальный компьютер. Программу установки можно загрузить с сайта Maven.
Выберите категорию "Разное" в окне "Параметры" и перейдите на вкладку "Maven".
Укажите папку установки Maven (требуется версия 2.0.9 или более поздняя).
Проверьте корректность адреса к локальному репозиторию Maven.
Нажмите кнопку "ОК".
В большинстве случаев при использовании типичной настройки Maven данные в окне "Параметры" уже корректны.
Поддержка Maven активируется как часть набора функциональных возможностей Java SE. Если вкладка "Maven" в окне "Параметры" недоступна, подтвердите активацию Java SE при создании приложения Java.Maven SCM используется в среде IDE для проверки артефактов Maven. Может потребоваться проверка факта установки всех необходимых клиентов для проверки исходных файлов на локальном компьютере и корректности их настройки.
Дополнительные сведения о Maven SCM приведены на странице Maven SCM.
Просмотр репозиториев MavenАртефакты, используемые Maven для создания всех проектов, сохраняются в локальном репозитории Maven. Если артефакт объявлен как зависимость проекта, он загружается в локальный репозиторий из одного из зарегистрированных удаленных репозиториев.
Репозиторий NetBeans и некоторые известные индексированные репозитории Maven зарегистрированы и включены в список окна "Обозреватель репозитория" по умолчанию. Репозиторий NetBeans содержит большинство общедоступных артефактов, требуемых для создания проекта. Обозреватель репозиториев Maven можно использовать для просмотра содержимого локальных и удаленных репозиториев. Для просмотра локальных артефактов разверните узел "Локальный репозиторий". Артефакты, указанные в узлах удаленного репозитория, могут быть добавлены в качестве зависимостей проекта, однако не все из них представлены локально. Они добавляются к локальному репозиторию только в том случае, если объявляются в качестве зависимостей проекта.
Чтобы открыть обозреватель репозиториев Maven:
выберите в главном меню "Окно" > "Прочее" > "Обозреватель репозиториев Maven".
Когда курсор находится над артефактом, среда IDE отображает всплывающую подсказку с координатами артефакта. Посмотреть дополнительные сведения об артефакте можно с помощью двойного щелчка по файлу JAR артефакта в обозревателе.
Чтобы выполнить поиск артефакта, нажмите кнопку "Найти" на панели инструментов обозревателя репозиториев Maven или используйте текстовое поле "Быстрый поиск" на главной панели инструментов.
Подробные сведения об управлении зависимостями путей классов Maven и работе с репозиториями Maven в среде IDE приведены в разделе Управление зависимостями курса Практические рекомендации по Apache Maven в NetBeans 6.x.
Для просмотра видеоролика по использованию Artifact Viewer обратитесь к демонстрации Работа с зависимостями Maven.
Создание проекта приложения на платформе NetBeans
В этом разделе для построения приложения на платформе NetBeans из архетипа Maven используется мастер создания проекта. Этот мастер создает проекты модуля Maven, требуемые для разработки приложения на платформе NetBeans. Также мастер предоставляет возможность создания модуля NetBeans в проекте приложения, однако в данном учебном курсе выполняется отдельное создание каждого модуля.
Создание проектаЧтобы создать приложение на платформе NetBeans с помощью мастера создания проекта, выполните следующие действия:
Выберите в меню "Файл" команду "Новый проект" (CTRL+SHIFT+N), чтобы открыть мастер создания проекта.
Выберите приложение Maven NetBeans из категории Maven. Нажмите кнопку "Далее".
В поле "Имя проекта" введите MavenPlatformWordApp и укажите местоположение проекта. Нажмите кнопку "Готово". image::images/maven-quickstart_maven-newproject.png[title="Снимок экрана: мастер создания проекта"]
Первое создание приложения платформы NetBeans с использованием Maven может занять некоторое время, поскольку среде IDE требуется загрузить все необходимые артефакты из репозитория NetBeans.При нажатии кнопки "Готово" в среде IDE по умолчанию создаются следующие типы проектов Maven.
Приложение на платформе NetBeans. Данный проект является проектом-контейнером для приложения на платформе. В нем перечисляются включаемые модули и местоположения репозиториев проекта. Данный проект не содержит исходных файлов. В среде IDE создаются модули, содержащие исходные файлы и ресурсы в подкаталогах проекта.
Приложение на базе платформы NetBeans. В данном проекте указываются артефакты (исходные файлы), требуемые для компиляции приложения. Необходимые зависимости (артефакты среды IDE, артефакты модуля) указываются в файле проекта pom.xml . При развертке узла "Библиотеки" можно просмотреть библиотеки, необходимые для приложения платформы NetBeans.
Ресурсы брэндинга приложения на платформе. Этот проект содержит ресурсы, используемые для брэндинга приложения.
Во всех проектах Maven файл pom.xml (POM) расположен в узле "Файлы проекта" в окне "Проекты". При просмотре файла POM для проекта приложения NetBeans можно заметить, что в качестве модулей приложения перечислены два других модуля, созданные мастером.
Изменение элементов брэндингаВ модуле брэндинга указываются ресурсы брэндинга, используемые для построения приложения на платформе. Диалоговое окно брэндинга обеспечивает удобное редактирование свойств брэндинга приложения для изменения имени, экрана заставки и значений текстовых элементов.
При создании приложения платформы NetBeans на основе архетипа именем приложения по умолчанию будет идентификатор артефакта приложения. В этом упражнении для изменения имени приложения и замены изображения экрана заставки по умолчанию используется мастер брэндинга.
В среде IDE модуль брэндинга необходимо создать до изменения ресурсов брэндинга.Щелкните правой кнопкой мыши модуль *ресурсов брэндинга приложения платформы * и выберите команду "Брэндинг".
На вкладке "Основной" измените заголовок приложения на My Maven Platform Word App. image::images/maven-quickstart_maven-branding1.png[title="Снимок экрана: мастер создания проекта"]
Выберите вкладку "Экран заставки" и нажмите кнопку "Обзор" рядом с изображением экрана заставки по умолчанию для поиска другого изображения. Нажмите кнопку "ОК".
Можно скопировать изображение, представленное ниже, в локальную систему и указать его в качестве экрана заставки в диалоговом окне "Брэндинг".
Создание модуля MavenWordEngine
В этом разделе выполняется создание нового модуля с именем MavenWordEngine. Затем модуль преобразуется для добавления оконного компонента, а также кнопки и текстовой области.
Создание модуляВ этом упражнении выполняется создание нового проекта модуля в каталоге, содержащем модуль брэндинга и модуль приложения.
В главном меню выберите "Файл" > "Новый проект".
Выберите модуль Maven NetBeans в категории Maven. Нажмите кнопку "Далее".
В качестве имени проекта введите текст MavenWordEngine.
Нажмите кнопку "Обзор" и выберите местоположение проекта для каталога MavenPlatformWordApp. Нажмите кнопку "Готово".
При просмотре файла POM для модуля MavenWordEngine можно заметить, что для идентификатора artifactId проекта установлено значение MavenWordEngine.
Для создания модуля NetBeans необходимо использовать подключаемый модуль nbm-maven-plugin . При просмотре POM для модуля можно заметить, что в среде IDE автоматически указывается файл nbm для packaging , и что подключаемый модуль nbm-maven-plugin указывается в качестве модуля построения.
При просмотре POM для приложения платформы NetBeans обратите внимание, что модуль MavenWordEngine добавлен в список модулей приложения.
Добавление модуля в качестве зависимости для MavenPlatformWordAppВ данном упражнении модуль MavenWordEngine объявляется в качестве зависимости приложения на базе платформы NetBeans путем добавления зависимости в POM. В файле POM для приложения выполняется объявление следующих зависимостей.
При развертке узла "Библиотеки" для приложения на базе платформы NetBeans можно заметить, что в модуле брэндинга и некоторых других библиотеках, являющихся зависимостями кластера, необходимыми для создания приложения, существует зависимость.
Можно развернуть список зависимостей, не связанных с classpath для просмотра полного списка зависимостей.
Для добавления зависимости в файл POM можно изменить файл POM непосредственно в редакторе или посредством диалогового окна "Добавить зависимость" в окне "Проекты".
Разверните MavenPlatformWordApp - приложение на основе платформы NetBeans в окне "Проекты".
Щелкните узел "Библиотеки" правой кнопкой мыши и выберите команду "Добавить зависимость".
Перейдите на вкладку "Открыть проекты" и выберите MavenWordEngine. Нажмите кнопку "ОК".
Новый проект будет отображен в диалоговом окне по завершении сканирования и обновления индексов в среде IDE.При развертке узла "Библиотеки" для MavenPlatformWordApp в окне "Проекты" можно заметить, что модуль MavenWordEngine выведен теперь в качестве зависимости.
Добавление оконного компонента в модульВ этом упражнении используется мастер для добавления оконного компонента в модуль MavenWordEngine.
Щелкните модуль NetBeans MavenWordEngine в окне "Проекты" правой кнопкой мыши и выберите команду "Создать" > "Прочее" для открытия мастера создания файла.
Выберите "Окно" в категории "Разработка модулей". Нажмите кнопку "Далее".
Выберите команду Вывод в раскрывающемся списке "Позиция окна". Нажмите кнопку "Далее". image::images/maven-quickstart_maven-new-window.png[title="Снимок экрана: страница оконного компонента в мастере создания файла"]
Введите текст Text в поле "Префикс имени класса". Нажмите кнопку "Готово".
Выводится список создаваемых и изменяемых файлов.
При нажатии кнопки "Готово" в окне "Проекты" можно заметить, что в среде IDE создан класс TextTopComponent.java в com.mycompany.mavenwordengine в узле "Папка с исходными файлами". Также в среде IDE созданы дополнительные файлы ресурсов в com.mycompany.mavenwordengine в узле "Другие исходные файлы". В этом упражнении выполняется редактирование только для класса TextTopComponent.java .
В окне "Файлы" можно просмотреть структуру проекта. Для компиляции проекта Maven в узле "Папка с исходными файлами" могут находиться только исходные файлы (каталог src/main/java в окне "Файлы"). Другие ресурсы (например, файлы XML) должны быть расположены в узле "Другие исходные файлы" (каталог src/main/resources в окне "Файлы").
Изменение оконного компонентаВ этом упражнении выполняется добавление текстовой области и кнопки в оконный компонент. Затем выполняется изменение метода, вызываемого при нажатии кнопки, для замены букв в текстовой области на прописные.
Выберите в редакторе вкладку "Проектировщик" класса TextTopComponent.java .
Перетащите кнопку и текстовую область из палитры в окно.
Щелкните текстовую область правой кнопкой мыши и выберите команду "Изменить имя переменной", а затем введите текст text в качестве имени. Имя используется для получения доступа к компоненту из кода.
Введите для кнопки текст "Filter!". image::images/maven-quickstart68_maven-nbm-textopcomponent.png[title="Снимок экрана: страница оконного компонента в мастере создания файла"]
Дважды щелкните элемент кнопки "Filter!" в представлении "Проектировщик", чтобы открыть в редакторе исходного кода метод обработчика события для кнопки. Этот метод создается автоматически при двойном щелчке элемента кнопки.
Измените тело метода для добавления следующего кода. Сохраните изменения.
Для упрощения ввода кода в редакторе можно использовать автозавершение кода.
Для тестирования правильности работы приложения можно щелкнуть узел проекта приложения MavenPlatformWordApp на основе платформы NetBeans правой кнопкой мыши и выбрать команду "Построить вместе с зависимостями".
Действием по умолчанию, привязанным к функции "Построить вместе с зависимостями", является создание проекта при помощи подключаемого модуля Reactor. При создании проекта с использованием подключаемого модуля Reactor построение зависимостей подпроектов выполняется до построения проекта. В окне "Вывод" отображается порядок построения.
Результаты построения также отображаются в окне "Вывод".
В окне "Проекты" можно заметить, что проекты больше не содержат метки, поскольку артефакты необходимых зависимостей теперь доступны в локальном репозитории узла com.mycompany .
Для запуска проекта щелкните узел проекта приложения MavenPlatformWordApp на основе платформы NetBeans и выберите команду "Выполнить". После запуска приложения можно протестировать его, выполнив следующие действия.
Выберите в главном меню приложения платформы команду "Окно" > "Тext", чтобы открыть окно "Text".
Наберите в текстовой области текст строчными буквами и нажмите кнопку "Filter!"
Закройте приложение Maven Platform Word App.
При нажатии кнопки "Filter!" буквы введенного текста изменяются на прописные и отображаются в текстовой области.
Создание модуля TextFilter
В этом упражнении выполняется создание модуля TextFilter и добавление модуля в приложение в качестве зависимости. Модуль TextFilter предоставляет определенную службу и содержит только интерфейс. Доступ к этой службе можно впоследствии получить из других модулей при помощи поиска.
Создание модуляВ этом упражнении для создания модуля TextFilter выполняются следующие действия.
Выберите в меню "Файл" команду "Новый проект" (CTRL+SHIFT+N).
Выберите архетип модуля Maven NetBeans в категории "Maven". Нажмите кнопку "Далее".
Введите текст TextFilter в качестве имени проекта.
Нажмите кнопку "Обзор" для установки местоположения проекта и найдите каталог MavenPlatformWordApp. Нажмите кнопку "Готово".
При нажатии кнопки "Готово" в среде IDE создается модуль, и в окне "Проекты" открывается проект модуля TextFilter NetBeans Module.
Среда IDE изменяет файл pom.xml проекта POM "MavenPlatformWordApp - приложение платформы NetBeans" для добавления нового модуля в список включаемых в проект модулей.
По завершении создания модуля необходимо добавить модуль в качестве зависимости приложения.
Добавление модуля TextFilter в качестве зависимости приложения MavenPlatformWordAppВ этом упражнении выполняется добавление модуля TextFilter в качестве зависимости приложения MavenPlatformWordApp на базе платформы NetBeans.
Щелкните правой кнопкой мыши узел "Библиотеки" проекта MavenPlatformWordApp - приложение на базе платформы NetBeans и выберите команду "Добавить зависимость".
Выберите вкладку "Открыть проекты" в диалоговом окне "Добавить зависимость".
Выберите модуль TextFilter NetBeans Module. Нажмите кнопку "ОК".
При нажатии кнопки "ОК" среда IDE добавляет модуль в качестве зависимости проекта. При развертке узла "Библиотеки" можно заметить, что модуль добавлен в список зависимостей. В файле POM для проекта MavenPlatformWordApp - приложение на основе платформы NetBeans видно, что среда IDE добавила в элемент зависимостей следующие строки.
Добавление интерфейса в модуль TextFilterВ этом упражнении выполняется добавление простого интерфейса в модуль TextFilter.
Щелкните правой кнопкой мыши модуль TextFilter NetBeans Module и выберите "Создать" > "Интерфейс Java".
Введите текст TextFilter в качестве имени класса.
Выберите пункт com.mycompany.textfilter в раскрывающемся списке "Упаковка". Нажмите кнопку "Готово".
Измените класс путем добавления следующего кода. Сохраните изменения.
Преобразование модуля TextFilter в общедоступныйВ этом упражнении выполняется определение пакета com.mycompany.textfilter как общедоступного, чтобы другие модули имели доступ к методам. Для объявления пакета как общедоступного необходимо преобразовать элемент configuration подключаемого модуля nbm-maven-plugin в файле POM для определения пакетов, экспортируемых как общедоступные посредством подключаемого модуля. Можно внести изменения в файл POM в редакторе или путем выбора пакетов, определяемых как общедоступные, в диалоговом окне "Свойства" проекта.
Щелкните модуль TextFilter NetBeans Module правой кнопкой мыши и выберите команду "Свойства".
Выберите в диалоговом окне "Свойства проекта" категорию "Общедоступные пакеты".
Выберите пакет com.mycompany.textfilter. Нажмите кнопку "ОК".
При нажатии кнопки "ОК" в среде IDE изменяется файл POM проекта для редактирования элемента configuration артефакта nbm-maven-plugin и добавляются следующие записи.
Теперь запись POM содержит следующие записи.
Дополнительные сведения приведены по адресу nbm-maven-plugin manifest
Создание модуля MyFilter
В этом упражнении выполняется создание модуля MyFilter и добавление этого модуля в качестве зависимости модуля TextFilter. Впоследствии можно вызвать методы в модуле MyFilter путем поиска службы TextFilter.
Создание модуляВ этом упражнении выполняется создание модуля MyFilter. Для создания модуля необходимо выполнить действия, которые были выполнены при создании модуля TextFilter.
Выберите в меню "Файл" команду "Новый проект" (CTRL+SHIFT+N).
Выберите модуль Maven NetBeans в категории Maven. Нажмите кнопку "Далее".
Введите текст MyFilter в качестве имени проекта.
Нажмите кнопку "Обзор" для установки местоположения проекта и найдите каталог MavenPlatformWordApp. Нажмите кнопку "Готово".
Добавьте модуль MyFilter в качестве зависимости проекта MavenPlatformWordApp - приложение на базе платформы NetBeans.
Добавление модуля TextFilter в качестве зависимостиВ этом упражнении выполняется добавление модуля TextFilter в качестве зависимости модуля MyFilter.
Щелкните правой кнопкой мыши узел "Библиотеки" проекта MyFilter и выберите команду "Добавить зависимость".
Выберите вкладку "Открыть проекты" в диалоговом окне "Добавить зависимость".
Выберите модуль TextFilter. Нажмите кнопку "ОК".
Изменение модуля MyFilterВ этом упражнении выполняется добавление класса Java с отдельным методом с именем process , преобразующим буквы строки в прописные. Также указывается выполнение реализации интерфейса TextFilter классом. Для указания, что TextFilter является службой, которая будет зарегистрирована во время компиляции, используется аннотация @ServiceProvider .
Щелкните модуль MyFilter правой кнопкой мыши и выберите "Создать" > "Класс Java".
Введите текст UpperCaseFilter в качестве имени класса.
Выберите в раскрывающемся списке "Пакет" элемент com.mycompany.myfilter. Нажмите кнопку "Готово".
Измените класс для добавления следующего кода. Сохраните изменения.
Обратите внимание на принцип использования аннотации для определения поставщика служб. Для получения дополнительных сведений об аннотации @ServiceProvider и поведении механизма ServiceLoader в пакете JDK 6 обратитесь к документации по интерфейсу API для утилит.
Изменение модуля MavenWordEngineВ этом упражнении выполняется изменение обработчика событий в оконном компоненте "Text" для использования поиска в целях вызова интерфейса TextFilter и получения доступа к методу MyFilter. До добавления кода в обработчик событий необходимо объявить зависимость от модуля TextFilter.
Щелкните узел "Библиотеки" модуля MavenWordEngine правой кнопкой мыши и добавьте зависимость от модуля TextFilter.
Разверните узел "Пакеты с исходными файлами" модуля MavenWordEngine и откройте TextTopComponent в редакторе исходного кода.
Отредактируйте метод обработчика кнопки jButton1ActionPerformed для добавления следующего кода. Сохраните изменения.
Для удобства работы с кодом используйте автозавершение кода.
Теперь можно проверить правильность работы приложения. Далее выполняется добавление нового оконного компонента, отображающего историю текста, обработанного при помощи фильтра.
Добавление объектов LookupListener и InstanceContent в оконный компонент "Text"
В этом упражнении выполняется добавление слушателя и поля для сохранения содержимого текстовой области при нажатии кнопки "Filter!" .
Добавьте в модуль MavenWordEngine объект InstanceContent и измените конструктор TextTopComponent путем добавления следующего кода.
Измените метод jButton1ActionPerformed для добавления старого значения текста в объект InstanceContent при нажатии кнопки.
Создание модуля History
В этом разделе выполняется создание модуля с именем History, отображающего значение InstanceContent . Для создания модуля необходимо выполнить действия, которые были выполнены при создании модулей TextFilter и MyFilter.
Выберите в меню "Файл" команду "Новый проект" (CTRL+SHIFT+N).
Выберите модуль Maven NetBeans в категории Maven. Нажмите кнопку "Далее".
Введите текст History в качестве имени проекта.
Нажмите кнопку "Обзор" для установки местоположения проекта и найдите каталог MavenPlatformWordApp. Нажмите кнопку "Готово".
Добавьте модуль History в качестве зависимости проекта MavenPlatformWordApp - приложение на базе платформы NetBeans.
Создание оконного компонента в модуле HistoryВ этом упражнении используется мастер добавления оконного компонента в модуль.
Щелкните модуль History NetBeans в окне "Проекты" правой кнопкой мыши и выберите команду "Создать" > "Прочее" для открытия диалогового окна "Новый файл".
Выберите "Окно" в категории "Разработка модулей". Нажмите кнопку "Далее".
Выберите элемент Редактор в раскрывающемся списке "Позиция окна". Нажмите кнопку "Далее".
Введите текст History в поле "Префикс имени класса". Нажмите кнопку "Готово". Выводится список создаваемых и изменяемых файлов.
Изменение оконного компонента HistoryТеперь выполняется добавление в оконный компонент элемента текстовой области, отображающего отфильтрованные строки.
Выберите в редакторе вкладку "Проектировщик" класса TextTopComponent.java .
Перетащите текстовую область из палитры в окно.
Щелкните текстовую область правой кнопкой мыши и выберите команду "Изменить имя переменной", а затем введите текст historyText в качестве имени.
Добавьте private поле result и следующий код в конструктор объекта HistoryTopComponent для прослушивания поиска класса String текущего активного окна и отображения всех извлеченных объектов String в текстовой области.
Построение и запуск приложения
Теперь можно протестировать приложение
Щелкните правой кнопкой мыши узел проекта Приложение MavenPlatformWordApp на базе платформы NetBeans и выберите команду "Очистить".
Щелкните правой кнопкой мыши узел проекта Приложение MavenPlatformWordApp на базе платформы NetBeans и выберите команду "Построить вместе с зависимостями".
Щелкните правой кнопкой мыши узел проекта *Приложение MavenPlatformWordApp на базе платформы NetBeans * и выберите команду "Выполнить".
При выборе команды "Выполнить" среда IDE запускает приложение платформы NetBeans. Окна "History" и "Text" можно открыть в меню "Окно".
При вводе текста в окно "Text" и нажатии кнопки "Filter!" буквы текста преобразуются в прописные и текст добавляется в содержимое окна "History".
Данное краткое руководство демонстрирует незначительность различий между способами создания приложения платформы NetBeans с использованием Maven и способами создания приложения с использованием Ant. Главным отличием является принцип управления сборкой приложения при помощи Maven POM. Дополнительные примеры построения приложений и модулей на платформе NetBeans приведены в учебных курсах Учебной карты по платформе NetBeans.
Дополнительные сведения
Дополнительные сведения о создании и разработке приложений приведены в следующих ресурсах.