Как я могу использовать Maven через прокси? - PullRequest
110 голосов
/ 09 августа 2009

Хочу поделиться своим опытом использования maven через прокси.

Скорее всего, вы столкнетесь с исключениями и сообщениями вроде:

repository metadata for: 'org.apache.maven.plugins' could not be retrieved from 
repository: central due to an error: Error transferring file: Connection refused: connect

или

[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-clean-
plugin:2.5: Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its 
dependencies could not be resolved: Failed to read artifact descriptor for 
org.apache.maven.plugins:maven-clean-plugin:jar:2.5

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

Ответы [ 15 ]

4 голосов
/ 09 августа 2009

Я знаю, что это не совсем ответ на вопрос, но, возможно, стоит знать, кто ищет этот пост. Также возможно установить прокси репозитория Maven, например nexus .

Ваш maven будет настроен для связи с локальным прокси-сервером Nexus, а затем Nexus будет извлекать (и кэшировать) артефакты. Он может быть настроен через веб-интерфейс и имеет поддержку (http) прокси.

Это может быть преимуществом, особенно в компании, поскольку артефакты доступны локально и могут быть загружены быстро, и вы больше не зависите от доступности внешних репозиториев Maven.

Чтобы вернуться к вопросу; с Nexus есть хороший графический интерфейс для конфигурации прокси, и это нужно делать только в одном месте, а не для каждого разработчика.

1 голос
/ 02 сентября 2016

Если maven работает через прокси-сервер, но не некоторые из плагинов, которые он вызывает, попробуйте также установить JAVA_TOOL_OPTIONS с настройками -Dhttp*.proxy*.

Если у вас уже есть JAVA_OPTS, просто сделайте

export JAVA_TOOL_OPTIONS=$JAVA_OPTS
0 голосов
/ 17 сентября 2018

Иногда вам нужно добавить другие теги <proxy></proxy> и указать https в тегах протокола: <protocol>https</protocol>

0 голосов
/ 01 июля 2015

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

  • Изменены настройки сети JRE Maven (\ jre \ lib \ net.properties) для использования настройки прокси системы.

    https.proxyHost=proxy DNS
    https.proxyPort=proxy port
    
  • Включены настройки прокси-сервера в файле settings.xml. Я не предоставил настройки имени пользователя и пароля, чтобы использовать аутентификацию NTLM.

0 голосов
/ 02 августа 2014

За исключением методов, упомянутых выше, с некоторыми усилиями вы можете запустить maven через прокси с помощью библиотеки jproxyloader (на странице есть пример, как это сделать: http://jproxyloader.sourceforge.net/). Это позволяет настроить прокси socks только для загрузки артефактов.

В решении, упомянутом duanni (установка -DsocksProxyHost), есть одна проблема. Если у вас есть интеграционные тесты, работающие с локальной базой данных (или другие тесты, подключающиеся к URL, которые не должны проходить через прокси). Эти тесты перестанут работать, потому что соединения с базой данных также будут направлены на прокси. С помощью jProxyLoader вы можете настроить прокси только для хоста nexus. Кроме того, если вы хотите, вы можете передавать соединения с базой данных через другой прокси.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...