Как автоматически перенести все зависимости из локального Maven-репозитория в проект?

Имеется Maven-проект располагающийся в локальном Maven-репозитории (Apache Archiva, если это имеет какое-то значение) с зависимостями, находящимися там-же. Зависимости имеют свои зависимости, те, в своё очередь, свои и так далее. Другими словами проект напрямую зависит от двух библиотек, но в иерархии зависимостей находится много (очень много) других библиотек.
Передо мной поставили задачу переместить все зависимости из локального репозитория непосредственно в проект. Объяснили это тем, что клиенту необходимо произвести с кодом некое действо, после чего мы получим изменённый код обратно.
На просторах интернета нашёл следующее решение/предложение/костыль: создать в проекте локальный репозиторий и перемести зависимости туда. Для этого в pom.xml файле проекта (в Eclipse, если это имеет значение) был изменён узел repository так:

<repositories>
    <repository>
        <id>project-repo</id>
        <!-- Оригинальное значение: ftp://123.123.123.123/maven-repo -->
        <url>file:///${basedir}/repo</url>
    </repository>
</repositories>

Соответственно, в корневую директорию проекта была добавлена папка repo, куда были перенесены (в ручную) зависимости из Maven-репозитория. Так как зависимости/библиотеки так-же имеют свои pom.xml, в которых репозиторий указан как FTP-сервер, то их пришлось изменять. Далее приведена примерная структура репозитория в корне проекта (указаны только pom.xml файлы для экономии места):

├repo
│ └com
│   ├abcd
│   │  ├lib1
│   │  │  └1.2.3
│   │  │     └pom.xml
│   │  └lib2
│   │     └3.4.5
│   │        └pom.xml
│   └xyzz
│      ├lib3
│      │  └5.6.7
│      │     └pom.xml
│      └lib4
│         └8.9.0
│            └pom.xml
└pom.xml

Если в корневом pom.xml URL репозитория указан как file:///${basedir}/repo, то во вложенных (например в repo/com/abcd/lib2/3.4.5/pom.xml) его пришлось менять так, чтоб он указывал на корневую директорию репозитория так file:///${basedir}/../../../../../repo. Это работает, компилируется и т.д., но у меня всё равно возникает чувство, что я делаю что-то не так.

Вопрос: как автоматически/программно с помощью бубна перенести/интегрировать зависимости Maven-проекта из локального репозитория непосредственно в проект, чтоб он не был зависим от локального Maven-репозитория?


Ответы (0 шт):