Работа с Maven без доступа к интернету

 
 
 
Сообщения:3
Всем добрый день!

Я начинаю частями осваивать Java. И вот дошел до системы сборки Maven.
До текущего момента я написал несколько простых утилит, где сторонние библиотеки клал в папку libs и добавлял к проекту (и потом с ними же и собирал jar). Начал кое-что читать, пробовать и натолкнулся на то, что maven качает свои зависимости из центрального репозитория через интернет. Все бы ничего бы... только нахожусь я на территории режимного предприятия, где доступ к интернету закрыт:(
Я прочитал, что можно создать свой (корпоративный) репозиторий. Только если в папку libs я просто накидал библиотек и присоединил разом, то здесь мне надо прописывать каждую отдельно.
Отсюда вопрос: Какая вообще возможна стратегия работы с Maven, если доступа к интернету на машине нет?
 
 
Сообщения:64
Можно дома собрать проект, чтобы Maven все зависимости проекта подтянул. Находиться они будут в папке .m2 в каталоге пользователя. Например, для Windows:
C:\Users\Axwer\.m2

Потом эту папку скопировать на компьютер, где нет интернета. Maven в первую очередь ищет зависимости в этой папке, потом если не нашёл, смотрит в удалённые репозитории.
 
 
Сообщения:531
AndreyPnd:
Я прочитал, что можно создать свой (корпоративный) репозиторий. Только если в папку libs я просто накидал библиотек и присоединил разом, то здесь мне надо прописывать каждую отдельно.
Отсюда вопрос: Какая вообще возможна стратегия работы с Maven, если доступа к интернету на машине нет?

Создать свой репозиторий это правильная стратегия, так в основном и делают для закрытых сетей.
Что касается зависимостей, то в maмen файлах сборки указываются только прямые зависимости, остальное это уже работа maven.
Например вам в проекте нужна библиотека А, которая в свою очередь требует библиотеку В, которая в свою очередь требует библиотеку С. Вы указываете в зависимостях только библиотеку А, а библиотеки В и С maven сам подтягивает.
 
 
Сообщения:9745
AndreyPnd:
только нахожусь я на территории режимного предприятия, где доступ к интернету закрыт:(
Я прочитал, что можно создать свой (корпоративный) репозиторий.
Настроить корпоративный репозиторий можно, но он в свою очередь должен иметь доступ в интернет. Такой репозиторий (proxy repository) будет кешировать у себя скачанные библиотеки, однако если их у него нет - ему нужно сначала их скачать к себе.

Разве что ты хочешь вручную скачивать библиотеки из интернета, а затем их заливать в корпоративный репозиторий. Это очень много мороки.
Изменен:22 ноя 2018 08:56
 
 
Сообщения:3
axwer:
Можно дома собрать проект, чтобы Maven все зависимости проекта подтянул... Потом эту папку скопировать на компьютер, где нет интернета

Да, так мне и пришлось поступить, чтобы просто попробовать покрутить, посмотреть его на работе... Но, я подумал, что для реальной работы такой вариант постоянного копирования папки .m2 наверное, как-то не комильфо. Ладно бы еще выделить только новые загруженные библиотеки для новой зависимости - а они ведь будут разбросаны по всему локальному репозиторию (в зависимости от названия groupid, artefactid - разные папки с разной вложенностью).
Кстати, встретился со странной особенностью: На домашней машине я указал зависимости, он закачал их. И когда я перекопировал .m2 на рабочую машину, то оказалось, что какой-то библиотеки не хватает (хотя на домашней машине он не ругался).

izon:
Создать свой репозиторий это правильная стратегия, так в основном и делают для закрытых сетей.

Если рассматривать вариант закрытой сети - я согласен, это логично. Но, у меня-то такой задачи пока нет. Пока задача просто организовать работу с maven без доступа к интернету.

Староверъ:
Настроить корпоративный репозиторий можно, но он в свою очередь должен иметь доступ в интернет....

Правильно я понимаю: сначала maven лезет в локальный репозиторий. Если не находит, то в корпоративный (удаленный) репозиторий. Если и там не находит, то уже идет в свои центральные репозитории?
Староверъ:
Разве что ты хочешь вручную скачивать библиотеки из интернета, а затем их заливать в корпоративный репозиторий. Это очень много мороки.

Мороки много - это я уже понял:) Поэтому я и думаю, как выстроить работу в таких условиях.
Пока вижу 2 способа:
1) То, что предложил axwer - делать сборку на машине с интернетом (дома, например), копировать .m2 и замещать потом на работе.
2) Собственно, вручную качать библиотеки... причем вместе с pom.xml и закачивать в корпоративный (или в локальный можно?)
Правильно я понимаю - принципиально других вариантов тут нет ?
 
 
Сообщения:9745
AndreyPnd:
Правильно я понимаю: сначала maven лезет в локальный репозиторий. Если не находит, то в корпоративный (удаленный) репозиторий. Если и там не находит, то уже идет в свои центральные репозитории?
Нет, сам корпоративный репозиторий полезет в центральный.
AndreyPnd:
2) Собственно, вручную качать библиотеки... причем вместе с pom.xml и закачивать в корпоративный (или в локальный можно?)
Правильно я понимаю - принципиально других вариантов тут нет ?
Это конечно можно, но самый правильный вариант - это дать возможность машинке с корпоративным репозиторием ходить в интернет. Дать посмотреть на эту машинку security специалистам если надо.
 
 
Сообщения:3
Староверъ:
самый правильный вариант - это дать возможность машинке с корпоративным репозиторием ходить в интернет

По-моему, я понял. Мне не нужен интернет на машине где я работаю с IDE, мне нужно организовать корпоративный репозиторий на удаленной машине, которая будет иметь выход в интернет.
Спасибо.
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет