«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Освоение Maven: помимо управления сборкой

Освоение Maven: помимо управления сборкой

Опубликовано 5 августа 2024 г.
Просматривать:225

Mastering Maven: Beyond Build Management

Maven широко известен как мощный инструмент автоматизации сборки, но это гораздо больше. Это комплексный инструмент управления проектами, который упрощает весь процесс сборки, управление зависимостями и создание документации. В этом посте мы рассмотрим различные аспекты Maven и подробно разберемся в его возможностях.

Основные особенности Maven
1.Генерация сборки
2. Управление зависимостями
3.Документация

Когда вы выполняете такие команды, как mvn build или mvn Deploy, Maven просматривает файл pom.xml, который содержит все конфигурации, и действует соответствующим образом. Давайте углубимся в структуру pom.xml и ее значение.

Файл POM

``` xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0


com.example
my-app
1.0-SNAPSHOT
jar



    1.8
    1.8
    5.2.8.RELEASE




    
    
        org.springframework
        spring-core
        ${spring.version}
    
    
    
        org.springframework
        spring-context
        ${spring.version}
    
    
    
        junit
        junit
        4.12
        test
    




    
        
        
            org.apache.maven.plugins
            maven-compiler-plugin
            3.8.1
            
                ${maven.compiler.source}
                ${maven.compiler.target}
            
        
        
        
            org.apache.maven.plugins
            maven-surefire-plugin
            2.22.2
        
    




    
        central
        https://repo.maven.apache.org/maven2
    




    
        releases
        http://repo.mycompany.com/releases
    
    
        snapshots
        http://repo.mycompany.com/snapshots
    

Давайте декодируем POM-файл:

**Файл pom.xml следует определенной схеме XML (определенной в xsi:schemaLocation:), которая гарантирует, что он придерживается правильной структуры, которую проверяет Maven. Вот пример:






Ключевые элементы:

  • Родительский POM:
    Каждый файл POM в Spring Boot имеет родительский POM. Если родительский элемент не определен, родительским становится супер POM.

  • GroupId, ArtifactId и версия:
    Эти элементы однозначно идентифицируют проект в Maven Central.


com.example
    my-app
    1.0-SNAPSHOT
    jar


  • Характеристики: Определите пары ключ-значение, на которые можно ссылаться в pom.xml.


    1.8


-

  • Репозитории: Укажите, где загрузить зависимости, обычно из Maven Central.


    
        central
        https://repo.maven.apache.org/maven2
    



Зависимости: список зависимостей проекта.



    
        org.springframework.boot
        spring-boot-starter-web
        2.3.4.RELEASE
    



  • Конфигурация сборки: Определяет процесс и этапы сборки. Для этого нам нужно понять жизненный цикл сборки maven.

Жизненный цикл сборки Maven

Maven следует определенному жизненному циклу сборки, состоящему из нескольких этапов:

  1. Подтвердить:
    Проверяет структуру проекта.

  2. Компилировать:
    Преобразует код Java в байт-код (файлы .class) и помещает их в папку target/.

  3. Тест:
    Запускает тестовые примеры, расположенные в каталоге test/.

  4. Упаковка:
    Генерирует файлы JAR/WAR из скомпилированного байт-кода и сохраняет их в папке target/.

  5. Проверять:
    Проверяет целостность посылки.

  6. Установить:
    Устанавливает пакет в локальный репозиторий.

  7. Развертывать:

    Загружает пакет в удаленный репозиторий.

Настройка процесса сборки:
Maven обеспечивает гибкость для добавления конкретных целей на каждом этапе с помощью элемента. Вы также можете создавать и использовать плагины для расширения функциональности Maven.



    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            3.8.1
            
                1.8
                1.8
            
        
    




*Установить с помощью maven: *
Он устанавливает файл jar, который мы создали на этапе компиляции после завершения тестирования, упаковки и проверки.
здесь он создает папку m2, в которой хранятся все зависимости. Мы можем изменить расположение этой папки в файле settings.xml в разделе

Развертывание с помощью Maven
Конфигурация развертывания указывается внутри элемента.



    
        internal.repo
        http://repo.mycompany.com/maven2
    




Совет: мы можем предоставить учетные данные в файле settings.xml внутри папки .m2/repository.

Будьте в курсе событий Maven и осваивайте его нюансы, чтобы значительно улучшить управление проектами и развить навыки автоматизации. Помните, Maven — это больше, чем просто инструмент сборки, это командный центр проекта. Погрузитесь глубже, исследуйте новые плагины и продолжайте экспериментировать. Чем больше мы взаимодействуем с Maven, тем эффективнее становится наш процесс разработки. Продолжайте расширять границы и позвольте Maven сделать все остальное — в конце концов, это все равно, что иметь швейцарский армейский нож для управления вашими проектами!

Большое спасибо за чтение, буду признателен за ваши ценные отзывы.
Также сообщите мне в комментариях, если вы встретите какие-нибудь интересные плагины.
Не забудьте поставить лайк, поделиться и подписаться.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/mini2809/mastering-maven-beyond-build-management-6fd?1. В случае нарушения авторских прав свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3