Афоризм
Не надо инсценировать раздумья.
Наталья Резник
Последние статьи

 • Пользователи
Создание пользователей и назначения им прав доступа
 • Настройки форм
Адаптация интерфейсных настроек, локализация
 • Права доступа
Ограничение прав доступа к организациям на уровне БД
 • Ролевой механизм
Интегрирование ролей БД в приложениe JaBricks
 • Загрузка модулей
Динамическая загрузка модулей в приложениe
 • Активности Android
Многоэкранные Android приложения
 • Fragment dynamic
Динамическая загрузка фрагментов в Android
 • Fragment lifecycle
Жизненный цикл Fragment'ов в Android
 • Fragment example
Пример Fragment'ов в Android
 • Data Binding
Описание и пример Data Binding
 • Компонент TreeTable
Описание компонента TreeTable для Swing
 • Хранилища Android
Внутренние и внешние хранилища данных
 • Пример SQLite
Пример использования SQLite в Android
 • WebSocket
Описание и пример реализации WebSocket
 • APK-файл Android
Создание apk-файла для android устройств, .dex файлы
Поддержка проекта

Если Вам сайт понравился и помог, то будем признательны за Ваш «посильный» вклад в его поддержку и развитие
 • Yandex.Деньги
  410013796724260

Maven репозиторий внутри проекта

При поиске зависимостей maven последовательно просматривает ряд репозиториев, начиная с локального, расположенного по умолчанию в директории ${user.home}/.m2/repository. Если зависимость в локальном репозитории отсутствует, то далее maven выполняет поиск во внутреннем «корпоративном» репозитории (если он используется), и после этого в центральном репозитории. Как только зависимость найдена, то maven закачивает ее в локальный репозиторий.

Задачу maven'у можно «облегчить» размещением репозитория внутри проекта. Только после этого необходимо в проектном файле pom.xml указать местоположение репозитория.

Рассмотрим решение данной задачи на примере проекта swit-repo, которое представляет собой приложение с графическим интерфейсом библиотеки SWT (зависимости для репозитория). В качестве основы данного проекта используем пример swit.

Создание maven репозитория в проекте

Для создания в проекте maven репозитория необходимо выполнить команду mvn install:install-file. Создадим в корне проекта ${basedir} директорию repo, которую будем использовать в качестве проектного репозитория. Чтобы maven загрузил «зависимость» в repo, необходимо использовать опцию localRepositoryPath. Maven команды для создания репозитория будут выглядеть следующим образом.

mvn install:install-file 
    -Dfile=org.eclipse.swt.win32.win32.x86_3.7.1.v3738a.jar
    -DgroupId=org.eclipse.swt.win32.win32.x86
    -DartifactId=org.eclipse.swt.win32.win32.x86
    -Dversion=3.7.1.v3738
    -Dpackaging=jar
    -DlocalRepositoryPath=repo
    -DgeneratePom=true
mvn install:install-file
    -Dfile=org.eclipse.core.runtime_3.7.0.v20110110.jar
    -DgroupId=org.eclipse.core.runtime
    -DartifactId=org.eclipse.core.runtime
    -Dversion=3.7.0.v20110110
    -Dpackaging=jar
    -DlocalRepositoryPath=repo
    -DgeneratePom=true
mvn install:install-file
    -Dfile=org.eclipse.core.commands_3.6.0.I20110111-0800.jar
    -DgroupId=org.eclipse.core.commands
    -DartifactId=org.eclipse.core.commands
    -Dversion=3.6.0.I20110111-0800
    -Dpackaging=jar
    -DlocalRepositoryPath=repo
    -DgeneratePom=true

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

При выполнении команды «mvn install:install-file» maven выведет в консоль информацию приблизительно следующего содержания :


[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------
[INFO] Building swit 1.0
[INFO] ------------------------------------------------------------------
[INFO]
[INFO] --- maven-install-plugin:2.4:install-file (default-cli) @ \
                                                            swit-repo ---
[INFO] Installing E:\swit-repo\
       org.eclipse.core.commands_3.6.0.I20110111-0800.jar to 
       E:\swit-repo\repo\org\eclipse\core\commands\
       org.eclipse.core.commands\3.6.0.I20110111-0800\org.eclipse.core.
       commands-3.6.0.I20110111-0800.jar
[INFO] Installing C:\Users\PC\AppData\Local\Temp\
       mvninstall5195949622522809983.pom 
       to E:\swit-repo\repo\org\eclipse\core\commands\
       org.eclipse.core.commands\3.6.0.I20110111-0800\org.eclipse.core.
       commands-3.6.0.I20110111-0800.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.953 s
[INFO] Finished at: 2016-10-16T16:33:30+04:00
[INFO] Final Memory: 5M/15M
[INFO] ------------------------------------------------------------------------
 

Подключение репозитория

Для подключения репозитория необходимо в проектном файле pom.xml резместить следующий код :

<repositories>
    <repository>
        <id>repo</id>
        <releases>
            <enabled>true</enabled>
            <checksumPolicy>ignore</checksumPolicy>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <url>file://${basedir}/repo</url>
    </repository>
</repositories>

Теперь при первой загрузке зависимости из проектного репозитория в локальный maven выведет в консоль приблизительно следующую информацию :


E:\swit-repo>mvn clean package -Dmaven.test.skip=true
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------------------------------------------------
[INFO] Building swit 1.0
[INFO] ----------------------------------------------------------------
Downloading: file://E:/swit-repo/repo/org/eclipse/core/runtime/
                   org.eclipse.core.runtime/3.7.0.v20110110/
                   org.eclipse.core.runtime-3.7.0.v20110110.pom
Downloaded: file://E:/swit-repo/repo/org/eclipse/core/runtime/
                   org.eclipse.core.runtime/3.7.0.v20110110/
                   org.eclipse.core.runtime-3.7.0.v20110110.pom
                   (502 B at 9.8 KB/sec)
Downloading: file://E:/swit-repo/repo/org/eclipse/core/commands/
                   org.eclipse.core.commands/3.6.0.I20110111-0800/
                   org.eclipse.core.commands-3.6.0.I20110111-0800.pom
Downloaded: file://E:/swit-repo/repo/org/eclipse/core/commands/
                   org.eclipse.core.commands/3.6.0.I20110111-0800/
                   org.eclipse.core.commands-3.6.0.I20110111-0800.pom 
                   (509 B at 16.6 KB/sec)
Downloading: file://E:/swit-repo/repo/org/eclipse/equinox/common/
                   org.eclipse.equinox.common/3.6.0.v20110523/
                   org.eclipse.equinox.common-3.6.0.v20110523.pom
Downloaded: file://E:/swit-repo/repo/org/eclipse/equinox/common/
                   org.eclipse.equinox.common/3.6.0.v20110523/
                   org.eclipse.equinox.common-3.6.0.v20110523.pom
                   (506 B at 24.7 KB/sec)
 . . .
 

Скачать примеры

Рассмотренный пример размещения maven repository внутри проекта можно скачать здесь (3.5 Мб).

  Рейтинг@Mail.ru