Здравствуйте, vsb, Вы писали:
vsb> Вроде есть специальная команда mvn dependency:go-offline но она тупо не работает как надо — плагины не скачиваются.
Сам так не делал, но попробую подкинуть идеи...
А ты точно последнюю версию используешь? Если версия maven-dependency-plugin явно не указана в pom.xml, то оно может что-то очень старое использовать.
Добавь <requirePluginVersions/> в enforcer и убедись, что всё прописано.
Если у тебя в pom.xml плагин не прописан, но ты добавляешь его вызов в командную строку (mvn ... exec:exec например), то он тоже будет вытягиваться позже.
Глупый вопрос — а оно точно надо? Может лучше докер volume как кеш m2_repo подключать, чтобы быстрее было? Иначе после каждого апдейта кода тебе опять надо всё вытаскивать всё равно.
Здравствуйте, ·, Вы писали:
vsb>> Вроде есть специальная команда mvn dependency:go-offline но она тупо не работает как надо — плагины не скачиваются. ·>Сам так не делал, но попробую подкинуть идеи... ·>А ты точно последнюю версию используешь? Если версия maven-dependency-plugin явно не указана в pom.xml, то оно может что-то очень старое использовать.
По дефолту из спринг бута тянется предпоследняя версия, пробовал последнюю, разницы не увидел.
·>Глупый вопрос — а оно точно надо? Может лучше докер volume как кеш m2_repo подключать, чтобы быстрее было? Иначе после каждого апдейта кода тебе опять надо всё вытаскивать всё равно.
Я не думаю, что docker build умеет монтировать вольюмы. Хотя сейчас почитал, вроде что-то подобное есть, RUN --mount, надо поэкспериментировать, спасибо за наводку.
Всё вытаскивать надо не после каждого апдейта кода, а после каждого апдейта pom.xml, что случается реже.
Наверное отказываться от этой техники я не буду, оно у меня всё же работает, просто хотелось бы заменить эту странную конструкцию на какую-то простую и адекватную команду, если таковая существует.
Здравствуйте, vsb, Вы писали:
vsb> ·>Сам так не делал, но попробую подкинуть идеи... vsb> ·>А ты точно последнюю версию используешь? Если версия maven-dependency-plugin явно не указана в pom.xml, то оно может что-то очень старое использовать. vsb> По дефолту из спринг бута тянется предпоследняя версия, пробовал последнюю, разницы не увидел.
А что не дотягивается-то?
Дока говорит, что:
dependency:go-offline tells Maven to resolve everything this project is dependent on (dependencies, plugins, reports) in preparation for going offline.
vsb> ·>Глупый вопрос — а оно точно надо? Может лучше докер volume как кеш m2_repo подключать, чтобы быстрее было? Иначе после каждого апдейта кода тебе опять надо всё вытаскивать всё равно. vsb> Я не думаю, что docker build умеет монтировать вольюмы. Хотя сейчас почитал, вроде что-то подобное есть, RUN --mount, надо поэкспериментировать, спасибо за наводку.
Тут вроде куча ещё идей: https://stackoverflow.com/questions/42208442/maven-docker-cache-dependencies
vsb> Всё вытаскивать надо не после каждого апдейта кода, а после каждого апдейта pom.xml, что случается реже.
Ну всё равно... И один кеш можно шарить между проектами.
Здравствуйте, ·, Вы писали:
·>А что не дотягивается-то? ·>Дока говорит, что: ·>dependency:go-offline tells Maven to resolve everything this project is dependent on (dependencies, plugins, reports) in preparation for going offline.
Тупо все плагины не дотягиваются. Ну может не все, не знаю, но когда реальный билд начинается — оно ещё кучу всего докачивает.
Здравствуйте, vsb, Вы писали:
vsb> ·>А что не дотягивается-то? vsb> ·>Дока говорит, что: vsb> ·>dependency:go-offline tells Maven to resolve everything this project is dependent on (dependencies, plugins, reports) in preparation for going offline. vsb> Тупо все плагины не дотягиваются. Ну может не все, не знаю, но когда реальный билд начинается — оно ещё кучу всего докачивает.
Попробуй поисследовать какой-нибудь конкретный плагин, который докачивается...
Может у тебя там какой-нибудь условный билд или какой-то плагин при выполнении гола что-то тащить начинает.
Здравствуйте, ·, Вы писали:
vsb>> Тупо все плагины не дотягиваются. Ну может не все, не знаю, но когда реальный билд начинается — оно ещё кучу всего докачивает. ·>Попробуй поисследовать какой-нибудь конкретный плагин, который докачивается... ·>Может у тебя там какой-нибудь условный билд или какой-то плагин при выполнении гола что-то тащить начинает.
Да там тупо хелло-ворлд из двух файлов на спринг буте с двумя зависимостями, чего там исследовать. Он базовые плагины не вытаскивает типа clean-plugin, surefire и тд.
Здравствуйте, vsb, Вы писали:
vsb> ·>Попробуй поисследовать какой-нибудь конкретный плагин, который докачивается... vsb> ·>Может у тебя там какой-нибудь условный билд или какой-то плагин при выполнении гола что-то тащить начинает. vsb> Да там тупо хелло-ворлд из двух файлов на спринг буте с двумя зависимостями, чего там исследовать. Он базовые плагины не вытаскивает типа clean-plugin, surefire и тд.
Может что-то не то с spring boot? У меня вроде что-то такое делает:
Здравствуйте, vsb, Вы писали:
vsb>В докерфайле. Есть pom.xml надо чтобы скачалось всё. Думаю кто писал тот поймёт.
а чего вы пытаетесь достичь? из прилагаемого докерфайла не вполне понятно
вы хотите собирать билд каждый раз перед запуском приложения вместо того, чтобы положить его в докер репозиторий и запускать уже собранный?
Здравствуйте, hrensgory, Вы писали:
vsb>>В докерфайле. Есть pom.xml надо чтобы скачалось всё. Думаю кто писал тот поймёт.
H>а чего вы пытаетесь достичь? из прилагаемого докерфайла не вполне понятно H>вы хотите собирать билд каждый раз перед запуском приложения вместо того, чтобы положить его в докер репозиторий и запускать уже собранный?
Я хочу, чтобы билд собирался в 2 приёма. Сначала собирался слой со всеми зависимостями. Потом собирался слой с приложением. Чтобы, если я меняю исходники, он не скачивал все или часть зависимостей заново. А скачивал зависимости только при изменении pom.xml.