Добавление jar-файла как зависимости в проект Maven

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Используйте Maven, и ваша голова останется спокойной!

Внесите следующий блок кода в файл pom.xml своего проекта:

xml
Скопировать код
<dependency>
    <groupId>GROUP_ID</groupId> <!-- Замените на значение вашего group id -->
    <artifactId>ARTIFACT_ID</artifactId> <!-- Замените на ваш artifact id -->
    <version>VERSION</version> <!-- Укажите соответствующую версию -->
</dependency>

В качестве примера приведём JUnit:

xml
Скопировать код
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.2</version>
    <scope>test</scope> <!-- Ещё одна радость для тестирования 😎 -->
</dependency>

Не забудьте заменить GROUP_ID, ARTIFACT_ID и VERSION на актуальные значения. После того как вы произвели изменения в pom.xml, просто выполните команду mvn install.

Кинга Идем в IT: пошаговый план для смены профессии

Дикая природа зависимостей

Если вам требуется JAR-архив, который отсутствует в Central Maven Repository, выполните следующие шаги:

  1. Установите локально: Добавьте JAR-файл в ваш локальный репозиторий Maven командой mvn install:install-file.

    Bash
    Скопировать код
     mvn install:install-file -Dfile=<jar-name.jar> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=jar
  2. Определённая system-зона: Это крайний случай. Не рекомендуется её использовать, так как могут возникнуть проблемы с консистентностью сборок в CI/CD. Если вы всё же решились на такой шаг, обязательно обновите <scope> и <systemPath> в файле pom.xml.

    xml
    Скопировать код
     <dependency>
         <groupId>local-deps</groupId>
         <artifactId>your-jar</artifactId>
         <version>1.0.0</version>
         <scope>system</scope> <!-- И здесь могут обитать драконы 🐉 -->
         <systemPath>${project.basedir}/libs/your_jar.jar</systemPath>
     </dependency>

Распространение зависимостей – это всё о коммуникации

Обменяйтесь JAR-файлами с коллегами, используя внутренний репозиторий Maven:

Bash
Скопировать код
mvn deploy:deploy-file -Durl=file:///path-to-your-repo -DrepositoryId=repo1 -Dfile=<jar-name.jar> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=jar

Затем, чтобы загрузить зависимости из этого внутреннего репозитория, настройте ваш pom.xml:

xml
Скопировать код
<repositories>
    <repository>
        <id>internal-repo</id>
        <url>http://internal-repo-url/maven2</url> <!-- Здесь укажите URL вашего внутреннего репозитория -->
    </repository>
</repositories>

Зависимости Maven: правильные и неправильные действия

Следуйте следующим принципам при работе с зависимостями Maven:

  • Позвольте Maven работать за вас: Всегда указывайте зависимости в pom.xml.

  • Избегайте system-сферы: Это поможет вам избежать проблем с переносимостью.

  • Держите ваш pom.xml в чистоте: Удаляйте те зависимости, которые вам больше не нужны.

  • Централизуйте версии: Задавайте версии в секции <properties> для централизованного управления:

xml
Скопировать код
<properties>
    <junit.version>4.13.2</junit.version> <!-- В ожидании новых версий 😜 -->
</properties>
...
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId> 
    <version>${junit.version}</version> <!-- И вот как применяется версия -->
</dependency>

Визуализация

Добавление зависимости через Maven схоже с установкой нового элемента в пазл:

Markdown
Скопировать код
Пазл до: [🌟, 🌟, 🚀, ❔]
Пазл после:  [🌟, 🌟, 🚀, 🧩]
Markdown
Скопировать код
Тэг зависимости в `pom.xml`:
<dependencies>
    ...
    <dependency>
        <groupId>🧩</groupId>
        <artifactId>new-feature</artifactId>
        <version>1.0.0</version>
    </dependency>
    ...
</dependencies>

После добавления элемента пазл собран 🎉!

Устранение проблем с Maven как профессионал!

Если у вас возникли проблемы, вот что стоит проверить:

  • Артефакт отсутствует: Проверьте корректность groupId, artifactId и версии.

  • Транзитивные зависимости: Используйте mvn dependency:tree для просмотра дерева зависимостей.

  • Конфликт версий: Для решения проблемы используйте <dependencyManagement>.

Полезные материалы

  1. Maven – Введение в POM — здесь вы познакомитесь с основами.
  2. Руководство по началу работы с Maven — поможет вам добавить зависимости.
  3. Поиск по Maven Central Repository — поиск зависимостей Maven.
  4. Импорт Maven-проекта в Eclipse – Stack Overflow — информация об интеграции с Eclipse.
  5. Зависимости Maven | Документация IntelliJ IDEA — управление зависимостями в IntelliJ IDEA.
  6. Руководство пользователя JUnit 5 — интеграция JUnit 5 и Maven.