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

  1. создайте полный файл jar зависимостей, как сказано в ответе
  2. скопируйте банку на целевую машину, которую вы хотите
  3. выполните команду ниже оттуда

    mvn install:install-file -Dfile=<path-to-file>
    

это установит dependecies в репозитории maven целевой машины. Это полностью offline