Что такое pom файл

Apache Maven — основы

После публикации топика о Maven в комментариях возникли вопросы о том, как начать с ним работать, с чего начать, как составлять файлы pom.xml, откуда брать плагины и т.п. Данный топик будет своего рода getting started или f.a.q.

Терминология

Как в любой системе, в Maven, есть свой набор терминов и понятий.

Вся структура проекта описывается в файле pom.xml (POM – Project Object Model), который должен находиться в корневой папке проекта. Ключевым понятием Maven является артефакт — это, по сути, любая библиотека, хранящаяся в репозитории. Это может быть какая-то зависимость или плагин.

Зависимости — это те библиотеки, которые непосредственно используются в вашем проекте для компиляции кода или его тестирования.

Плагины же используются самим Maven’ом при сборке проекта или для каких-то других целей (деплоймент, создание файлов проекта для Eclipse и др.).

В самом начале работы с Maven, пользователь непременно столкнется с таким понятием как архетип. Архетип — это некая стандартная компоновка файлов и каталогов в проектах различного рода (веб, swing-проекты и прочие). Другими словами, Maven знает, как обычно строятся проекты и в соответствии с архетипом создает структуру каталогов.

Как правило, название артефакта состоит из названия группы, собственного названия и версии. К примеру Spring будет иметь вот такое название в среде Maven: org.springframework.spring:2.5.5. Последний домен означает всегда artifactId, все, что перед ним – groupId – хорошо это запомните!

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

Установка Maven

Последнюю версию всегда можно скачать на странице загрузки на официальном сайте. Просто распаковываем архив в любую директорию. Далее необходимо создать переменную в Path, в которой необходимо указать путь к Maven. Заходим в Win + Pause – Дополнительно – Переменные среды – в верхнем окошке нажимаем Создать, вводим имя M2_HOME и значение допустим “C:\apache-maven-2.2.1”. Далее там же создаем еще одну переменную M2 со значением %M2_HOME%\bin. Так же убеждаемся, что есть переменная JAVA_HOME с путем к JDK. Ее значение должно быть примерно таким «c:\Program Files\Java\jdk1.6.0_10\». И наконец в том же окошке создаем/модифицируем переменную Path, в нее необходимо просто написать %M2%, чтобы наша папочка с исполняемым файлом Maven была видна из командной строки. Теперь необходимо проверить работоспособность нашей установки. Для этого заходим в командную строку и вводим команду

Должна появиться информация о версиях Maven, jre и операционной системе, что-то вроде:

Maven создаст вам локальный репозиторий в вашей личной папке, например в каталоге C:\Documents and Settings\username\.m2\repository

Все, Maven готов к работе, можно приступать к созданию приложения.

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

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

Итак, допустим нас интересует веб-приложение – находим подходящий архетип, называется он maven-archetype-webapp. В командной строке, в необходимом каталоге выполняем команду Maven:

Теперь мы можем лицезреть довольно наглядную структуру каталогов с говорящими названиями java – здесь будут ваши классы, webapp – здесь размещаются странички веб-приложения, resources – различного рода ресурсы в classpath (файлы конфигурации, например), test – юнит-тесты, соответственно и т.п.

Сборка проекта

Здесь все просто – выполняем команду

в корневом каталоге приложения, там, где находится файл pom.xml. Первая команда скомпилирует ваш проект и поместит его в папку target, а вторая еще и положит его к вам в локальный репозиторий.

Есть полезная функция, наподобие конвеера, то есть можно написать

и Maven сначала очистит папку target проекта, потом соберет его и положит в репозиторий.

Минимальный набор действий для работы Maven мы изучили, теперь переходим к кастомизации и добавлению зависимостей проекта.

Зависимости и репозитории

Как правило, большинство популярных библиотек находятся в центральном репозитории, поэтому их можно прописывать сразу в раздел dependencies вашего pom-файла. Например чтобы подключить Spring Framework необходимо определить следующую зависимость:

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

Специфические вещи обычно не находятся в центральном репозитории и тогда вам придется указать репозиторий производителя вручную. Для примера добавим зависимость JSF-фреймворка ajax-компонентов JBoss RichFaces.

С зависимостями все просто:

А вот репозиторий JBoss теперь необходимо прописать ручками либо в файле settings.xml, который лежит в корне вашего локального репозитория, либо в самом файле pom.xml, в зависимости от того, нужен ли данный репозиторий во всех проектах, либо в каком-то одном конкретном, соответственно:

Как правило на сайтах крупных проектов пишут всю информацию, необходимую для встраивания их библиотеки в проект на основе Maven, но бывают случаи, когда артефакт приходится искать очень и очень долго. Здесь нам очень сильно может помочь MVNrepository.com — он вам всегда подскажет где может находиться искомая библиотечка. Но если уж и там не нашлось, то из собственного опыта могу посоветовать гуглить « pom.xml». Бывает так, что проекты уже давно закрыты и в репозитории не положены потому что разработчики уже не заботятся об их распространении. Тогда остается один единственный способ – добавить файл в репозиторий вручную командой:

Последний параметр чаще всего имеет значение jar.

Плагины

Так как плагины являются такими же артефактами, как и зависимости, то они описываются практически так же. Вместо раздела dependencies – plugins, dependency – plugin, repositories – pluginRepositories, repository – pluginRepository.

Плагинами Maven делает все, даже непосредственно то, для чего он затевался – сборку проекта, только этот плагин необязательно указывать в свойствах проекта, если вы не хотите добавить какие-то фичи.

Посмотрим как настроить плагин для создания проекта для Eclipse с использованием WTP ver. 2.0. В раздел plugins нашего pom.xml прописываем следующий плагин:

Теперь идем опять таки в командную строку и выполняем команду

Ждем пока Maven найдет все библиотеки в репозитории или скачает их и вуаля – теперь наш Maven-проект можно открыть как проект eclipse. При этом библиотеки никуда не копируются как при классическом подходе, а остаются в репозитории и Eclipse делает на них ссылку через свои переменные.

Единого списка всех плагинов естественно не существует, на официальном сайте только есть поддерживаемые плагины непосредственно разработчиками Maven. Однако хотелось бы отметить, что названия плагинов довольно прямолинейны и сделав поиск по ключевым словам «maven tomcat plugin» вы скорее всего обнаружите первой ссылкой плагин для деплоймента проекта в Tomcat.

Собственный репозиторий

К сожалению сам не имею большого опыта настройки репозитория, но могу посоветовать как наиболее простой и распространенный Nexus. За дополнительной информацией следует обратиться на сайт данного проекта.

Однако нельзя оставить без внимания и достойных конкурентов в лице Artifactory и Archiva.

Источник

Maven — зачем?

Это общая модель проектов. В ней описываются такие общие характеристики как имя, версия, авторы и их контактная информация, VCS проекта и вообще связанные с ним сетевые ресурсы, тип проекта (например библиотека или web-модуль, в оригинальной терминологии называется packaging, хотя влияет не только на тип получаемого артефакта), связи с другими проектами, используемые при сборке плагины и описания способа их задействования. Мне кажутся особенно важными два компонента этой модели.

Связи с другими модулями

POM допускает три типа связей с другими модулями: зависимость, включение и наследование.

Зависимость, эта связь говорит, что для некоторых фаз жизненного цикла нашего модуля, требуются некоторые артефакты модулей-зависимостей (абстрактно получилось — аж самому страшно). Что конкретно и на какой фазе жизненного цикла требуется определяется так называемой областью действия зависимости. Maven понимает несколько предопределённых областей действия и позволяет добавлять свои. В качестве примера ограничусь одной областью действия: compile — она говорит, что бинарные сборки зависимости требуются на этапе компиляции, выполнения тестов и во время выполнения.

Включение — говорит, что связанный модуль является неотъемлемой частью нашего модуля. Для прохождения нашим модулем некоторой фазы жизненного цикла, входящий в него также должен пройти эту фазу. Классический пример enterprise-модуль, включающий в себя web-модуль, пакет с EJB и общую библиотеку. Очевидно, что его сборка требует сборки каждого из включаемых модулей.

Наследование. Такая связь подразумевает перенос на наследника части модели предка. Правила переноса несколько запутаны, но в основном действует принцип — значение параметра модели предка становится умолчанием для модели потомка. Пример из моей практики: был создан модуль, устанавливающий версию JDK для компиляции проектов, внутренние репозитарии для результатов, набор правил для поверки соответствия исходников стандарту кодирования, он должен был использоваться (а кое-где и действительно использовался 😉 ) как родитель для всех разрабатываемых в рамках проекта модулей.

Описание используемых при сборке плагинов

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

Этот элемент несколько чужд общей идеи POM — он несёт не декларативное описание модуля, а инструкции по его сборке конкретным инструментом.

Итоги

Репозитории артефактов

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

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

Утилита управления жизненным циклом

Название получилось достаточно пафосное, однако оно вполне соответствует высокой миссии и сложности предмета.

Прежде чем погрузиться в её функции, необходимо немного познакомится с теорией организации жизненного цикла модуля в Maven. Жизненным циклом называется вся совокупность операций над модулем от инициализации сборки до развёртывания. В процессе прохождения жизненного цикла выполняются определённые операции над модулем, формируются некоторые артефакты. Жизненный цикл разделён на фазы. Каждая фаза подразумевает перевод модуля в новое состояние в результате её прохождения и появление новых артефактов. Каждая предыдущая фаза подготовливает основу для последующей. Список фаз является по сути частью POM, но глобальной, общей для всех модулей. Поный список приводить бессмысленно, но для примера приведу несколько фаз (достаточно интуитивно названных, на мой взгляд 🙂 ) в порядке их следования: compile,… test,… deploy.

В рамках каждой фазы выполняется некоторый набор целей в зависимости от модели конкретного модуля. Цель является конкретной операцией над исходными кодами и/или артефактами.

Также можно попросить выполнить отдельную задачу конкретного плагина. Например есть плагин для генерации Eclipse-проектов, задача «сгенерировать проект» которого по умолчанию не привязывается ни к одной фазе, а вызывается заинтересованными лицами вручную.

Ещё одной крайне интересной функцией mvn является создание заготовки проекта на основе архетипа. Архетип — обобщённый шаблон проекта, традиционно концентрирующийся на его структуре и используемых плагинах. Например есть стандартные архетипы java-библиотеки, web-модуля, и нестандартные, например grails приложение. Важно понимать отличие архетипа от типа проекта. Архетип — только шаблон начальной структуры и отдельных частей проекта, после создания проекта никакой информации о его архетипе не остаётся. Тип проекта — наоборот, часть модели, которая используется на протяжении всего жизненного цикла.

Что получается в сумме

Итак, мы выделили три столпа Maven. Что-же они дают нам вместе?

Заключение

Что-то я местами отклонился от центрального вопроса и вплотную занялся вопросом «как», ну да ладно…

Из всей информации, приведённой выше, можно сделать простой, но почему-то весьма редкий вывод. Maven — не утилита для сборки Java-приложений. Maven — фреймворк для автоматизации большого спектра задач при поддержке проекта. Он никак не связан с языком и платформой, более того он совершенно не обязан что-либо собирать. Вы с помощью описания моделей или написания плагинов превращаете его в тот или иной инструмент. Да, принятая в нём по модель по умолчанию — сборка Java-модулей, но это лишь умолчания…

Надеюсь, что после прочтения топика каждый может уверенно ответить на вопросы, приведённые в начале 😉

Источник

Русские Блоги

Подробное объяснение pom.xml

Что такое ПОМ?

обзор

Ниже приведены элементы, содержащиеся в файле pom.xml в проекте POM. Обратите внимание, что модель версии 4.0.0, которая в настоящее время является единственной версией POM, которая может одновременно поддерживаться Maven 2 и 3, необходима.

Один, базовая конфигурация

1.1 Атрибуты Maven, связанные с сотрудничеством

Самое простое определение pom.xml должно включать четыре элемента modelVersion, groupId, artifactId и version.Конечно, эти элементы также могут быть унаследованы от его родительского проекта. В Maven используйте groupId, artifactId и version, чтобы сформировать groupdId: artifactId: version для уникальной идентификации проекта:

1.2 Отношения между ПОМ,Наследование, агрегация и зависимость

Для тех, кто использует Java, термин наследование должен быть знаком всем. Чтобы наследовать pom, вам нужен родительский pom. В Maven определен super pom.xml. Любой pom.xml, который не объявляет своего родительского pom.xml, будет наследоваться от этого super pom.xml по умолчанию.

Давайте посмотрим на определение этого супер pom.xml:

4.0.0 central Central Repository https://repo.maven.apache.org/maven2 default false

central Central Repository https://repo.maven.apache.org/maven2 default false never

Интеллектуальная рекомендация

Что такое pom файл. Смотреть фото Что такое pom файл. Смотреть картинку Что такое pom файл. Картинка про Что такое pom файл. Фото Что такое pom файл

В статье разъясняются методы реагирования на чрезвычайные ситуации в Linux.

Обработка событий аварийного реагирования в среде Linux часто бывает более сложной, потому что по сравнению с Windows в Linux нет инструментов аварийного реагирования, таких как Autorun и procxp, и не.

Аннотация JAXB @XmlRootElement

Исходный адрес: [https://jaxb.java.net/tutorial/section_6_2_1-A-Survey-Of-JAXB-Annotations.html#Top-level Elements: XmlRootElement](https://jaxb.java.net/tutorial/section_6_2_1-A-Survey-Of-JAXB-Annota.

Компилировать запись о проблеме

Компилировать запись о проблеме make otapackage Поскольку в моей среде компиляции существуют среды 5.1 и 4.3, среда 4.3 перезагружается после компиляции среды 5.1.Эта проблема вызвана не перезагрузкой.

Как использовать кнопку под Android

Файл шаблона макета main.xml.

Поток байта

Обзор В API Java вы можете прочитать входной поток от него к объекту одной байтовой последовательности.InputStreamТем не менее, можно написать выходной поток в объект, который он написан в одной после.

Вам также может понравиться

Что такое pom файл. Смотреть фото Что такое pom файл. Смотреть картинку Что такое pom файл. Картинка про Что такое pom файл. Фото Что такое pom файл

mysql-workbench запускает хранимые процедуры

После выбора базы данных сначала выберите Создать хранимую процедуру в хранимой процедуре в нижнем левом углу. Тогда код хранимой процедуры: Затем нажмите Применить Затем откройте новый запрос, введит.

Elementui шаг

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

Что такое pom файл. Смотреть фото Что такое pom файл. Смотреть картинку Что такое pom файл. Картинка про Что такое pom файл. Фото Что такое pom файл

Перепечатка, пожалуйста, укажите источникhttp://blog.csdn.net/xiaanming/article/details/11380619 Эта статья в основном объясняет функцию позиционирования карт Baidu, а затем использование двух наложен.

Что такое pom файл. Смотреть фото Что такое pom файл. Смотреть картинку Что такое pom файл. Картинка про Что такое pom файл. Фото Что такое pom файл

Apple подтверждает приобретение Drive.ai автоматический запуск автомобиля

26 июня, согласно новому отчету, выпущенным Chronicle San Francisco, Apple наняла партию инженеров оборудования и программного обеспечения для «автоматического вождения автомобильного предприним.

Что такое pom файл. Смотреть фото Что такое pom файл. Смотреть картинку Что такое pom файл. Картинка про Что такое pom файл. Фото Что такое pom файл

Демонстрационная реализация загрузки многопоточной точки останова Android

Сначала сделайте рендеринг: Основные идеи реализации: Каждая загрузка выполняется путем сокращения общей длины ресурса загрузки с помощью RandomAccessFile, а затем запуска многопоточной загрузки после.

Источник

Русские Блоги

Подробное объяснение самого полного файла pom.xml в истории

1. Что такое ПОМ

2. Основные настройки

1. Информация заголовка

ПолеОписание
xmlnsПространство имен, аналогичное имени пакета, поскольку тег xml можно настроить, пространство имен необходимо
xmlns:xsiспецификация тега xml
xsi:schemaLocationИспользуется для определения адреса xmlschema, который представляет собой грамматику, которой необходимо следовать при написании xml.

Приклейте его и используйте, пожалуйста, обратитесь к этому сообщению в блоге для получения подробных инструкций«Понимание xmlns, xmlns: xsi и xsi: schemaLocation в XML-документах»

2. Основная информация maven

ПолеОписание
modelVersionОбъявите, за какой версией модели POM следует дескриптор проекта. Сама версия модели меняется редко, и даже в этом случае остается существенной.
Это необходимо для обеспечения стабильности, когда Maven вводит новые функции или другие изменения модели.
groupIdУникальный логотип компании или организации и путь, созданный во время настройки, также генерируются из этого,
Например, com.winner.trade, maven поместит пакет jar проекта по локальному пути: / com / Winner / trade
artifactIdУникальный идентификатор этого проекта. Под одним groupId может быть несколько проектов, которые различаются по artifactId.
versionНомер текущей версии этого проекта
packagingТип упаковки, возможные значения: pom, jar, maven-plugin, ejb, war, ear, rar, par и др.
nameИмя проекта, используемое для документации, созданной Maven, можно не указывать.
urlURL-адрес домашней страницы проекта, используемой документами Maven, можно не указывать.

Подождите, здесь так много атрибутов, подробности см. В конце блога. Полная версия pom.xml ;
, где groupId, artifactId, версия и упаковка составляют уникальные координаты проекта. В нормальных условиях достаточно первых трех пунктов.

3. Взаимосвязь между ПОМ

В основном используется для повторного использования и зависимости файлов POM.

а) Зависимость: список зависимостей

Этот элемент описывает все зависимости, связанные с проектом. Эти зависимости составляют звено в процессе построения проекта. Они автоматически загружаются из репозитория, определенного проектом.

[^ 1] Объем зависимостей области

Мы знаем, что зависимость maven транзитивна. Например: A–> B, B–> C. Но иногда проекту A не обязательно полагаться на C, поэтому зависимость от A необходимо исключить из проекта A. В управлении зависимостями maven есть два способа выполнения отношения зависимости, а именно Необязательные зависимости также как и Исключения зависимостей 。

Необязательные зависимости

Когда проект A зависит от другого проекта B, проект A может использовать небольшую часть функции проекта B, тогда вы можете настроить дополнительную зависимость от B в A. Например, проект B похож на спящий режим, он поддерживает различные базы данных, такие как mysql, oracle, но при обращении к этому проекту мы можем использовать его поддержку только для mysql, на данный момент вы можете настроить его в проекте A. Необязательные зависимости проекта B.

Исключения зависимостей

Первый случай

Когда проект A зависит от проекта B, а проект B зависит от проекта C одновременно, если проект A не хочет ссылаться на проект C по различным причинам, при настройке зависимости проекта B зависимость от C может быть исключена.

Пример (если предположить, что файл A pom.xml настроен, зависимость будет: A Project-B
-> Project-D
-> Project-E
-> Project-F
-> Project C
A имеет несколько зависимостей от E. Когда мы исключаем зависимость от E, нам нужно только сделать это в зависимости от конфигурации B:

Второй случай

Если у нашего проекта две зависимости: A и B, а также A и B зависят от C одновременно, но не одной и той же версии. Так что же нам делать?

1 Добавить плагин проверки

Затем запустите: mvn project-info-reports: dependencies, чтобы просмотреть отчет о зависимостях.

2 Удалить зависимости

б) Наследование: механизм наследования других конфигураций pom.xml.

В проектах, которые мы объединили, есть много повторяющихся конфигураций с одинаковыми groupId и версией, а также с одинаковыми зависимостями spring-core, spring-beans, spring-context и juit, что вызывает много потерь и вызывает проблемы, так как Использовать механизм наследования для единообразной настройки этой повторяющейся информации, так что «один оператор везде»?

Идея: создать родительско-дочернюю структуру POM, объявить некоторые конфигурации в родительском POM для наследования дочернего POM,

Родительский pom.xml

Sub pom.xml

c) Отношение агрегации: используется для объединения нескольких проектов maven в один большой проект.

Чтобы создать два модуля account-email и account-persist с помощью одной команды, необходимо создать дополнительный модуль с именем account-aggregator, а затем все модули всего проекта будут построены через этот модуль.

account-aggregator также имеет свой собственный POM-файл со следующим содержимым:

4. Шесть типов атрибутов Maven

1) Встроенные свойства Maven

Обычно используются два встроенных свойства:

АтрибутыОписание
$

Корневой каталог проекта (каталог, содержащий файл pom.xml)
$

Версия проекта

2) атрибуты POM

Пользователи могут использовать этот атрибут для ссылки на значение соответствующего элемента в файле POM. Обычно используемые атрибуты POM включают:

3) Пользовательские атрибуты

Пользователи могут настраивать свойства Maven под элементами POM

зависимости и теги dependencyManagement

При нормальных обстоятельствах из-за множества модулей нам нужен проект itoken-denpendencies для управления общедоступными зависимостями подпроектов.

Для правильной работы проекта все подпроекты должны использовать унифицированную версию зависимостей, а зависимости и версии каждого приложения должны быть гарантированы, чтобы гарантировать, что протестированные и опубликованные результаты совпадают.

В файле POM на верхнем уровне нашего проекта мы увидим dependencyManagement элемент. Позвольте подпроекту ссылаться на зависимость через свой элемент для управления версией пакета jar, не отображая номер версии.

В сочетании с настраиваемыми свойствами maven давайте посмотрим на конкретные приложения в проекте:

pom.xml в itoken-denpendencies

Использовать в родительском проекте dependencyManagement Объявить зависимую версию, нужно

pom.xml в itoken-zipkin

В подпроекте Maven будет подниматься по иерархии родитель-потомок, пока не найдет проект с элементом dependencyManagement, а затем будет использовать номер версии, указанный в элементе dependencyManagement.

нужно знать:

dependencyManagement Здесь он просто объявляет зависимости и не реализует введение. Если зависимость не объявлена ​​в подпроекте, она не будет унаследована от родительского проекта; только если зависимость записана в подпроекте и не указана конкретная версия, элемент будет унаследован от родительского проекта, а версия и область действия Все читается с родительского пом.

Если номер версии указан в подпроекте, будет использоваться версия jar, указанная в подпроекте.

4) Атрибут настроек

5) Свойства системы Java

На все свойства системы Java можно ссылаться с помощью свойств Maven, вот некоторые часто используемые свойства системы Java

АтрибутыОписание
java.versionВерсия среды выполнения Java
java.vendor JavaПоставщик среды выполнения
java.vendor.urlURL-адрес поставщика Java
java.homeКаталог установки Java
java.vm.specification.versionВерсия спецификации виртуальной машины Java
java.vm.specification.vendorПоставщик спецификации виртуальной машины Java
java.vm.specification.nameИмя спецификации виртуальной машины Java
java.vm.versionВерсия реализации виртуальной машины Java
java.vm.vendorПоставщик реализации виртуальной машины Java
java.vm.nameИмя реализации виртуальной машины Java
java.specification.versionВерсия спецификации среды выполнения Java
java.specification.vendorПоставщик спецификации среды выполнения Java
java.specification.nameИмя спецификации среды выполнения Java
java.class.versionНомер версии формата класса Java
java.class.pathПуть к классам Java
java.library.pathСписок путей, по которым производился поиск при загрузке библиотеки
java.io.tmpdirПуть к временному файлу по умолчанию
java.compilerИмя используемого JIT-компилятора
java.ext.dirsПуть к одному или нескольким каталогам расширений
os.nameНазвание операционной системы
os.archАрхитектура операционной системы
os.versionВерсия операционной системы
file.separatorРазделитель файлов («/» в системе UNIX)
path.separatorРазделитель путей («:» в системах UNIX)
line.separatorРазделитель строк («/ n» в системах UNIX)
user.nameИмя учетной записи пользователя
user.homeДомашний каталог пользователя
user.dirТекущий рабочий каталог пользователя

6) Атрибуты переменных среды

На все переменные среды можно ссылаться с помощью свойств Maven, начинающихся с env.
$ Представляет значение переменной среды JAVA_HOME;

5. Настройки сборки

Основные теги в сборке: ресурсы и плагины.

Ресурсы: Управление файлами ресурсов

Используется для ссылки или исключения файлов ресурсов

Плагины: установите встроенный плагин

плагины и управление плагинами

maven pass plugins с участием pluginmanagement Для управления плагинами аналогично dependencies с участием dependencyment
Но важно отметить, что plugins с участием pluginmanagement Принадлежит build Под этикеткой, а не крайний project

Объявление информации о плагине и версии в родительском проекте

Точно так же управление плагинами не будет напрямую вводить плагины.

Добавляйте плагины в подпроекты

Точно так же дочерний проект наследует настройки плагина родительского проекта и может быть свободно определен.

6. Конфигурация склада Maven

Порядок, в котором maven ищет склады, можно примерно понять так:

дополнение:
1. Если вы обнаружите, что в хранилище есть настройка зеркала во время процесса поиска, используйте вместо него адрес зеркала.
2. Если для идентификатора склада задано значение » central «, конфигурация переопределит конфигурацию центрального хранилища maven по умолчанию.

Местный склад

Вы также можете указать местоположение локального склада во время выполнения:

Центральный склад

Настроить удаленный склад в POM

Ранее мы видели, что супер POM настроен с идентификатором удаленного склада центрального, и мы можем настроить другие удаленные склады в POM. Для этого есть много причин. Например, у вас есть удаленный склад в локальной сети. Использование этого хранилища может значительно увеличить скорость загрузки, а затем и скорость сборки. Также возможно, что jar-файл, на который вы полагаетесь, не может быть найден в центральном хранилище, и он существует только в Определенный публичный склад, поэтому вам нужно добавить конфигурацию этого удаленного хранилища.
Здесь я настраиваю удаленный склад так, чтобы он указывал на китайское зеркало центрального склада:

Давайте сначала посмотрим на конфигурацию. Вы можете добавить несколько под ней, каждый со своим уникальным идентификатором, описательным именем и, что наиболее важно, URL-адресом удаленного хранилища.
Кроме того,

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

Конец статьи, ждем более подробных дополнений ······

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *