Как создать проект Java с Maven?
Java Maven - инструмент управления проектами, который предоставляет разработчикам полную структуру жизненного цикла сборки. Среды с несколькими командами разработки быстро выполняют работу соответствующих стандартов, а большинство настроек проекта простые и многоразовые. Maven упрощает жизнь разработчикам при создании отчетов, контроля и при настройке автоматизации.
Преимущества процесса разработки
Java Maven помогает разработчику легче создавать Java-проект. Любая новая задача, добавленная в проект, легко интегрируется в конфигурации Maven. Это увеличивает производительность процесса проектирования и строительства. Главная особенность Maven заключается в том, что этот инструмент может автоматически загружать библиотеки проекта.
При выполнении своих функций для согласованности и сохранения гибкости он использует строгое правило, основанное на XML. Поскольку большинство систем в Java интегрированы, они создают надежные Java Maven проекты с базовой системой построения.
Процессы, которые управляются с помощью этого инструмента:
- Проект.
- Документация.
- Составление отчетов.
- Зависимости.
- СДМ.
- Релизы.
- Распределения.
- Список рассылки.
- Архитектура Java Maven.
Настройка конфигурации
Чтобы настроить Maven, используют Project Object Model, который хранится в файле pom.xml. POM включает настройки конфигурации, связанные с проектом. Плагины настраивают и редактируют в теге файла pom.xml. Когда пользователь работает на Java Maven, то получает настройки по умолчанию. Последовательность построения проекта:
- Добавить код для создания и обработки приложений в репозитории исходного кода.
- Изменить параметры configurations/pom.XML/plugin.
- Создать приложение для проекта Java Maven.
- Сохранить вывод процесса сборки, как WAR или EAR-файл, в локальное местоположение или на сервере.
- Получить файл из локального местоположения или сервера и развернуть его на сайте.
- Обновить документ приложения с датой и последней версией, в соответствии с требованием приложения.
Maven написан на языке Java, применяется для управления проектами на языках C #, Ruby, Scala и других.
Установка
Чтобы использовать Maven, сначала убеждаются, что программа установлена на компьютере. После этого создают новый каталог на жестком диске, который будет корневым, а далее создают файл pom.xml внутри каталога, помещая следующий XML.
Это минимальный pom.xml файл, который необходимо иметь перед тем как создать проект с Java Maven.
Где:
- GroupId - идентифицирует организацию.
- ArtifactId - идентифицирует проект. Более конкретно, он идентифицирует артефакт, построенный из проекта, например, файл JAR.
- Version версия артефакта, который создает файл POM.
Когда разрабатывается проект, необходимо следить за обновлением версии. Другие проекты, которые используют артефакт, будут ссылаться на него с помощью groupId, artifactId и version.
Тестирование файла POM
После создания pom.xml внутри корневого каталога контролируют работоспособность Maven, а также то, как он понимает установленный файл.
Для этого открывают командную строку и переносят cd в корень. Затем выполняют команду mvn clean. Она очистит каталог Java Maven project от предыдущих временных файлов сборки. Далее Maven сообщит, какой проект найден, и выведет это в командную строку. Это подтверждает, что он понимает POM. Результат высветится на экране.
Когда проверен файл POM, создают исходный каталог Java внутри стандартного макета. При этом src будет находиться внутри корневого каталога проекта. Внутри него создается main каталог, в котором размещают java каталог - корневой для исходного кода.
Создание исходного файла Java
Внутри корневого исходного каталога src/main/java создается новый (пакет java) helloworld. В него вставляют файл с именем HelloWorld.java.
Когда создан исходный файл, открывают командную строку и устанавливают корневой каталог проекта. Затем выполняют следующую команду mvn package. Она указывает Maven на выполнение package фазы сборки, которая является частью default построения жизненного цикла. Maven будет компилировать исходный файл и создаст файл jar Java Maven, содержащий скомпилированный Java-класс.
Maven создает target подкаталог внутри корневого. Внутри target расположен готовый JAR-файл, а также множество временных файлов, например, classes- каталог, содержащий все скомпилированные классы.
На основе POM в данном примере JAR-файл будет называться HelloWorld.1.0.0.jar.
Создание файлов настроек
Если Maven установлен впервые, например, как часть установки Oracle WebLogic Server, у него еще не будет файла настроек.
Локальный репозиторий maven - это локальная папка, которая используется для хранения зависимостей проекта. Местом по умолчанию является папка .m2.
Пример места расположения файла настроек:
- Если имя пользователя bob, путь к каталогу в UNIX выглядит так:/home/bob/.m2/settings.xml.
- Место расположения в Windows: C: \ Users \ боб \ .m2 \ settings.xml.
Чтобы изменить местоположение по умолчанию, находят {M2_HOME}\conf\setting.xml файл и редактируют localRepository ключ: /path/to/local/repo.
Разработчик создает файлы настроек Maven в случаях:
- При использовании брандмауэра или прокси-сервера.
- При использовании собственного внутреннего менеджера хранилища.
Файл настроек Maven вызывается settings.xml и хранится в .m2 каталоге. Ниже приведен пример файла настроек.
Подключаемый модуль синхронизации
Oracle Fusion Middleware 12 предоставляет подключаемый модуль Maven Synchronization, который упрощает процесс настройки хранилищ и исключает необходимость пользователю разбираться, какие исправления установлены в конкретной среде. Этот плагин заполняет репозиторий из Oracle и гарантирует, что сборки используют правильные артефакы в конкретной среде. Плагин синхронизации Oracle Maven включен в установку Oracle WebLogic Server, Oracle Coherence и Oracle JDeveloper.
Чтобы использовать подключаемый модуль, указывают местоположение дома Oracle и репозитория. Его можно указать, используя путь к файловой системе или URL-адрес. Плагин проверяет все артефакты Maven в Oracle и гарантирует, что все они установлены в указанном репозитории, а версии соответствуют и совпадают на двоичном уровне.
Пример переброски Java Project
Если у пользователя есть проект Java, а он хочет преобразовать его в Maven, находят папку resources. Внутри нее находят папку с именем Scripts, которая содержит один исполняемый файл сценария оболочки - .CrunchifyMain.java и является основной отправной точкой для main внутри pom.xml файла.
Рекомендуется предварительно установить дополнительные плагины maven-resources-plugin и maven-dependency-plugin, отвечающие за копирование ресурсов проекта в выходной каталог.
Последовательность действий:
- Открыть pom.xml файл.
- Обновить расположение каталога, имя файла и путь (по необходимости).
- Нажать правой кнопкой мыши Project -> Run As -> Maven Build.
- Указать аргумент clean install.
- Указать папку /target/Crunchify, чтобы выполнить проверку.
- Запустить проект с помощью команды: $bash> java -jar Crunchify.jar
Компиляция и модульные тесты
Каждый программист выполняет модульные тесты. Для этого он вводит следующую команду: тест mvn.
После выполнения этой команды на экран будет выведена информация:
Maven может загружает больше плагинов, чем необходимо для выполнения тестов, поскольку у него уже есть зависимости, необходимые для компиляции. Перед компиляцией и выполнением он компилирует основной код. Если нужно скомпилировать тестовые источники, выполняют команду: mvn test-compile.
Теперь, можно скомпилировать и выполнить источники приложений и тесты.
Установка в Windows
Очень просто установить Apache Maven на Windows. Предварительно загружают архив .zip, настраивают переменную пути Windows. Последовательность операций:
- Загрузить и распаковать последнюю версию Maven. В разделе «Файлы» выбирают опцию «Двоичный архив zip».
- Разархивировать архив в локальную папку c: \ tools \ apache-maven-3.3.9.
- Настраивают переменную JDK и JAVA_HOME для среды Windows.
- Если JDK не установлен, переходят на страницу загрузки Java Maven Home и скачивают последнюю версию JDK.
- Запускают программу установки и выполняют последовательные шаги.
- После завершения установки на панели управления Windows открыть System-> Advanced system settings-> Environment Variables и добавить переменную JAVA_HOME.
- Добавить переменную M2_HOME в среду Windows.
- Следующий шаг - настроить переменную M2_HOME, чтобы указать на папку Maven, например: c: \ tools \ apache-maven-3.3.9.
- Добавить M2_HOME в путь папку bin. Для этого выбирают переменную Path из System-> Advanced system settings-> Environment Variables ->Edit и добавляют ее в конец.
- Проверяют, были ли успешны установка и настройка из команды запуска командной строки: mvn -version
- На экране поваляется сообщение. Это означает, что настройка Maven на компьютере прошла успешно. Если окна командной строки были открыты перед настройкой переменных среды, то потребуется перезапустить окна командной строки.
Загрузка на macOS
Установка Maven работает для любой версии macOS.
Последовательность процесса:
- На странице загрузки получить последнюю версию Maven Java version двоичного файла.
- Переместить архив в папку назначения, например, в / usr / local:sudo mv apache-maven-3.3.9-bin.tar.gz /usr/local.
- Эта команда переместит файл в / usr / local.
- Извлекают команду run:sudo tar -xvf apache-maven-3.3.9-bin.tar.gz.
- Команда будет извлечена в текущую папку.
- Удаляют архив, выполнив следующую команду: sudo rm apache-maven-3.3.9-bin.tar.gz.
- Для доступа к Maven из каталога настраивают M2_HOME и добавляют каталог bin в путь.
- Проверяют запуск версии команды: mvn -version.
- Должно появиться сообщение на экран.
Функции Maven для macOS мы вынесли в таблицу:
Функция | Описание |
Работа оффлайн | Если этот флажок установлен, Maven работает в автономном режиме и использует только ресурсы, доступные локально. Эта опция соответствует опции «offline» командной строки. |
Использовать реестр плагинов | Устанавливают флажок, чтобы включить ссылку на реестр плагинов Maven. Это соответствует опции no-plugin-registry командной строки. |
Выполнение рекурсивных целей | Если этот флажок установлен, сборка будет повторяться во вложенных проектах. Очистка этого флажка соответствует опции non-recursive командной строки. |
Трассировка стека исключений печати | Если этот параметр отмечен, генерируются следы стека исключений. Это соответствует опции errors командной строки. |
Обновление снимков | Устанавливают этот флажок, если нужно, чтобы Java Maven IDEA обновлял моментальные снимки при синхронизации. |
Выходной уровень | Выбирают желаемый уровень журнала вывода, который позволяет плагинам создавать сообщения на уровнях отладки, информации, предупреждений и ошибок фатальных или отключенных журналов вывода. |
Политика контрольной суммы | Выбирают желаемый уровень соответствия контрольной суммы при загрузке артефактов. Можно отказаться от загрузки, когда контрольные суммы не совпадают с strict-checksums или выдают предупреждение lax-checksums. |
Политика сбоя сборки с несколькими проектами | Указывают, как обрабатывать сбой в сборке мультипроекта. Можно отказаться от сборки при первом сбое, который соответствует опции командной строки fail-fast. Ошибка в конце соответствует параметру командной строки fail-at-end. |
Политика обновления плагина | Выбрать политику обновления плагина в раскрывающемся списке. Можно взять проверку наличия обновлений, соответствующих параметру командной строки check-plugin-updates. Отключают проверку обновлений, что соответствует опции командной строки no-plugin-updates. Этот параметр игнорируется для Maven 3 и более поздних версий. |
Потоки - T option | Используют это поле, чтобы установить «T» параметр для параллельных сборок. Эта опция доступна для Maven 3 и более поздних версий. |
Главная директория Maven | Используют этот раскрывающийся список, чтобы выбрать поставляемую в комплекте версию Maven (для Maven2 требуется версия 2.2.1, а для Maven3 - версия 3.0.5) или результат разрешенных системных переменных, таких как MAVEN_HOME или MAVEN2_HOME. Также можно указать собственную версию Maven, установленную на пользовательском компьютере, и выбрать нужный каталог в открывшемся диалоговом окне. |
Файл настроек пользователя | Указать файл, содержащий конфигурацию для пользователя Maven в текстовом поле. Если нужно указать другой, устанавливают флажок «Переопределить», нажимают кнопку «Эллипсис» и выбирают нужный файл в диалоговом окне «Выбор файла Maven». |
Локальный репозиторий | По умолчанию в поле отображается путь к локальному каталогу пользователя, который хранит загрузки и содержит временные артефакты сборки. Если нужно указать другой каталог, устанавливают флажок «Переопределить», нажимают кнопку «Многоточие» и выбирают нужный путь в диалоговом окне «Выбор локального хранилища Maven». |
Настройка прокси-сервера в Windows
Когда установлен Maven в Windows, выполняют настройки прокси-сервера. Если пользователь получил сообщение об ошибке Malformed reply from SOCKS server, то настраивают параметры прокси. Чтобы выполнить настройки, делают следующие шаги:
- Переходят к пути - {M2_HOME} /conf/settings.xml.
- Открывают файл settings.xml в режиме редактирования в любом текстовом редакторе.
- Открывают и обновляют тег.
- Чтобы сэкономить время, можно добавить данные прокси в конце команд Maven: $ mvn clean install -DproxySet=true -DproxyHost=ur.proxy.server -DproxyPort=port.
Можно установить прокси-сервер из командной строки. В этом случае рекомендуется использовать его глобальные параметры в settings.xml файле.
Альтернативные подходы к настройке HTTP-прокси
Есть несколько альтернативных подходов, которые используют для настройки прокси-сервера HTTP, но, в целом, они не так удобны, как редактирование settings.xml файла. Например, можно использовать подход http.proxyHost и http.proxyPort свойства системы в InstallDir/etc/system.properties файле так же, как подход для автономного контейнера без Fabric:
- http.proxy Host = 192.0.2.0.
- http.proxy Port = 8080.
Эта конфигурация имеет недостаток, не позволяя пользователям напрямую обращаться к прокси-серверу Maven во внутренней сети. Чтобы компенсировать это, необходимо настроить список хостов без прокси-сервера для включения тех, на которых работают серверы Fabric.
Из приведенного материала понятно, что Java Maven - это платформа, которая упрощает и стандартизирует процесс сборки проекта, легко обрабатывает компиляцию, распространение, документацию, коллективную работу. Также она выполняет большую часть задач, связанных с построением.