Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
linux_faq:maven [2020/04/21 11:37] – [Выкачать зависимости] adminlinux_faq:maven [2020/04/21 12:52] (current) – [Переменные окружения] admin
Line 1: Line 1:
 +====== Заметки о maven ======
 +===== Переменные окружения =====
 +Для работы maven нужны переменные окружения:
 +  * JAVA_HOME
 +  * MAVEN_HOME
 +  * M2_HOME
 +===== Инициализация проекта и скачивание плагинов =====
 +  mvn archetype:generate
 +Мавен скачает плагины (архетипы проектов), предложит ввести:
 +  - номер архетипа (или оставить дефолтный - quickstart)
 +  - Версию архетипа
 +  - groupId - по соглашению - это имя сайта организации в обратной нотации - com.org.name
 +  - artefactId - название проекта
 +  - version - версию проекта
 +  - 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**) нужно добавить такое:
 +<code><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>
 +</code>
  • linux_faq/maven.txt
  • Last modified: 2020/04/21 12:52
  • by admin