При компиляции вашего проекта Maven загрузит соответствующий файл .jar из репозитория, обычно из центрального репозитория (вы можете настроить различные репозитории либо для зеркалирования, либо для ваших собственных библиотек, которые недоступны в центральных репозиториях).
Если ваша IDE знает о Maven, она проанализирует pom
и либо сама загрузит зависимости, либо попросит Maven сделать это.Затем он откроет jar-файлы зависимостей, и вы получите автозаполнение: среда IDE «импортирует» jar-файлы для вас за кулисами.
Хранилище содержит не только файл «.jar» для зависимости, но также файл .pom, который описывает его зависимости.Итак, maven рекурсивно загрузит свои зависимости, и вы получите все jar-файлы, необходимые для компиляции вашего программного обеспечения.
Затем, когда вы попытаетесь запустить ваше программное обеспечение, вы должны будете сообщить JVM, где найтиэти зависимости (т. е. вы должны поместить их в путь к классам).
Обычно я копирую зависимости в каталог target/lib/
, поэтому его легко развернуть и запустить.Для этого вы можете использовать maven-dependency-plugin
, который вы указываете в <build>
:
<build>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</build>