Maven предварительно загрузить все зависимости
Мне нужно выпустить наш проект Maven build java для удаленной команды QA. Для этого я хотел бы загрузить все зависимости и отправить их, чтобы им не нужно было их загружать.
в настоящее время все зависимости определены в ПОМ.xml-файл, и мы используем либо mvn install, либо mvn package для создания проекта. Некоторые члены проекта используют Uber jars, другие используют Jars + зависимости для выполнения.
Что было бы самым простым способом предварительно упаковать зависимые файлы jar, чтобы не было загрузки из интернета, и не слишком сильно меняет наш текущий процесс сборки?
2 ответов
возможным решением было бы очистить ваш локальный репозиторий, сказать Maven, чтобы загрузить все зависимости и зависимости плагинов вашего проекта и сделать ZIP из этого.
очистить локальный репозиторий, вы можете просто удалить папку {user.home}/.m2/repository
. Затем, вы можете использовать dependency:go-offline
цель:
цель, которая разрешает все зависимости проекта, включая плагины и отчеты и их зависимости.
mvn dependency:go-offline
Это загрузите все, от чего зависит ваш проект, и убедитесь, что при более поздней сборке ничего не будет загружено.
тогда вы можете просто сделать ZIP из {user.home}/.m2/repository
и отправьте это своей команде Q/A. Им нужно будет распаковать его внутри своего {user.home}/.m2/repository
чтобы иметь возможность построить проект.
автономный пакет deploy
ваше требование может быть выполнено путем создания отдельного файла jar с полной зависимости. Вы можете перенести его в любом месте см. https://stackoverflow.com/a/35359756/5678086
- создайте полный файл jar зависимостей, как сказано в ответе
- скопируйте банку на целевую машину, которую вы хотите
-
выполните команду ниже оттуда
mvn install:install-file -Dfile=<path-to-file>
это установит dependecies в репозитории maven целевой машины. Это полностью offline