Table of Contents

Заметки о maven

Переменные окружения

Для работы maven нужны переменные окружения:

Инициализация проекта и скачивание плагинов

mvn archetype:generate

Мавен скачает плагины (архетипы проектов), предложит ввести:

  1. номер архетипа (или оставить дефолтный - quickstart)
  2. Версию архетипа
  3. groupId - по соглашению - это имя сайта организации в обратной нотации - com.org.name
  4. artefactId - название проекта
  5. version - версию проекта
  6. package - имя директории, в где будет собран этот аретфакт (директории class и test).

В итоге - у собранного проекта будет название - artefactId-version и построит структуру директорий, необходимую для проекта.
Плагины попадут в ~/.m2/repository/

Структура директорий проекта maven

Типичный workflow

mvn clean

Очистит проект.

mvn compile

Соберет код проекта и в итоге - создаст директории target/classes/….

mvn test-compile

Соберет код тестов проекта и в итоге - создаст директории target/test-classes/…. mvn test Запустит собранные тесты

mvn install

Собрет jar-файл и положит его в корень директории target. Также - установит его в локальный репозиторий (~/.m2/repository) для использования его в качестве зависимости в других пакетах.

Расширенный workflow

mvn validate

Валидирует проект.

mvn compile

Соберет код проекта и в итоге - создаст директории target/classes/…. mvn test-compile Соберет код тестов проекта и в итоге - создаст директории target/test-classes/…. mvn test Запустит собранные тесты

mvn package

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

mvn intergration-test

Запуск интеграционных тестов.

mvn verify

Проверка пакета

mvn install

Собрет jar-файл и положит его в корень директории target. Также - установит его в локальный репозиторий (~/.m2/repository) для использования его в качестве зависимости в других пакетах.

mvn deploy

Копирует собранный пакет на удаленный репозиторий для дальнейшего использваония в совместной разработке или продакшене.

Выкачать зависимости

Скачать зависимости, указанные в pom-файлике можно так:

mvn dependency:copy-dependencies -DoutputDirectory=yourfoldername -Dhttps.protocols=TLSv1.2

Скачать исходники зависимостей:

mvn dependency:copy-dependencies -Dclassifier=sources -DoutputDirectory=yourfoldername -Dhttps.protocols=TLSv1.2

Чтобы скачать зависимости через proxy в файлик конфигурации maven (conf/settings.xml) нужно добавить такое:

<settings>
  <proxies>
   <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>PUT-YOUR-PROXY-NAME</host>
      <port>PUT-YOUR-PORT-NUMBER</port>
      <username>proxyuser</username>
      <password>somepassword</password>
      <nonProxyHosts>www.google.com|*.somewhere.com</nonProxyHosts>
    </proxy>
  </proxies>
</settings>