Невозможно подключиться к репозиторию maven при использовании прокси - PullRequest
0 голосов
/ 24 октября 2018

Моя машина использует прокси для подключения к Интернету.Но я получаю следующую ошибку при запуске команды сборки maven.И это работает, когда я отключаю прокси.Я не понимаю, почему прокси имеет значение здесь.

    [ERROR] Failed to execute goal on project flink-dist_2.11: Could not resolve dependencies for project org.apache.flink:flink-
dist_2.11:jar:1.7-SNAPSHOT: Failed to collect dependencies at 

    org.apache.flink:flink-shaded-hadoop2-uber:jar:1.7-SNAPSHOT:
 Failed to read artifact descriptor for org.apache.flink:flink-shaded-hadoop2-uber:jar:1.7-SNAPSHOT:
 Could not transfer artifact 
    org.apache.flink:flink-shaded-hadoop2-uber:pom:1.7-SNAPSHOT from/to apache.snapshots (https://repository.
apache.org/snapshots): Remote host closed connection during handshake: SSL peer shut down incorrectly -> [Help 1]

Ответы [ 5 ]

0 голосов
/ 24 октября 2018

Я столкнулся с той же проблемой на моей работе, где у нас есть Windows рабочие станции и NTLM2 прокси-сервер с аутентификацией.

Следующее решение отлично работает для меня.Преимущество этого решения в том, что оно может работать и с Maven, Git, IntelliJ IDE.

Рекомендованные шаги, которые необходимо выполнить, чтобы получить доступ через прокси-сервер NTLM2:

  1. Сначала вам необходимо скачать, настроить и запустить Cntlm прокси на вашем компьютере.
  2. Запустить Cntlm на вашем локальном хосте.Этот прокси-сервер перенаправит все ваши локальные не прошедшие проверку подлинности запросы HTTP / HTTPS на прокси-сервер компании в качестве аутентифицированных запросов.
  3. Настройте Maven, Git, IntelliJ, Eclipse и т. Д. Для использования локального прокси на localhost:3128.Вам не нужно настраивать аутентификацию здесь.

Подробности:

  1. Скачать Cntlm прокси с здесь .
  2. Тип cntlm.exe -H -d your_domain -u your_username.Он спросит ваш пароль.Введите его, и Cntlm выдаст вам хэши, что-то вроде этого:

    Password:
    PassLM          4E9C185932FER43543RWEFER33R4R34C
    PassNT          6E9F1254353RDR34RFSDWER3443RDC9A
    PassNTLMv2      43534RFWDWE3434RWFWER434C4FA224F  
    
  3. Отредактируйте / проверьте свой cntlm.ini файл

    Username   <your-domain-username>
    Domain     <windows-donain-name>
    Auth       NTLMv2
    PassNTLMv2 <hash>
    Proxy      <proxy-host:port>
    NoProxy    localhost, 127.0.0.*, 10.*, 192.168.*
    Listen     3128
    
  4. Запустите Cntlm с помощью простого сценария: start-proxy.cmd

    cd %CNTLM_HOME%
    
    rem verbose mode
    cntlm -v -c cntlm.ini
    
    rem verbose with logfile
    rem cntlm -v -c cntlm.ini -T %CNTLM_HOME%\nctlm.log
    
    rem test configuration
    rem cntlm -c cntlm.ini -I -M http://google.com
    
  5. Останов сервера Cntlm: stop-proxy.cmd

    taskkill /IM cntlm.exe /F
    

Затем вы можете создать два cmd-файла, которые изменяют конфигурацию Maven согласно вашему вкусу:

mvn-internet.cmd

call java8.cmd
del %MAVEN_HOME%\conf\settings.xml
copy %MAVEN_HOME%\conf\settings.xml.internet %MAVEN_HOME%\conf\settings.xml

mvn-intranet.cmd

call java8.cmd
del %MAVEN_HOME%\conf\settings.xml
copy %MAVEN_HOME%\conf\settings.xml.nexus %MAVEN_HOME%\conf\settings.xml

settings.xml.internet

<settings xmlns=...>
    <localRepository>...</localRepository>
    <proxies>
        <proxy>
            <id>my-proxy</id>
            <active>true</active>
            <protocol>http</protocol>
            <host>localhost</host>
            <port>3128</port>
            <nonProxyHosts>locahost</nonProxyHosts>
        </proxy>
    </proxies>
</settings>

settings.xml.nexus

<settings>
    <localRepository>...</localRepository>
    <mirrors>
        <mirror>
            <id>local-lalm</id>
            <name>local-lalm</name>
            <url>https://nexus.xxx...</url>
            <mirrorOf>*</mirrorOf>
        </mirror>
    </mirrors>  
    <profiles>
        <profile>
            <id>use-local-repo</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <repositories>
                <repository>
                    <id>LALM-global</id>
                    <url>https://nexus.xxx...</url>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>LALM-global</id>
                    <url>https://nexus.xxx...</url>
                </pluginRepository>
            </pluginRepositories>
            <properties>
                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            </properties>
        </profile>
    </profiles>
</settings>

То же самое с Git

git-internet.cmd

call java8.cmd
rem git config --global http.proxy username:password@localhost:3128
git config --global http.proxy localhost:3128

git-intranet.cmd

call java8.cmd
git config --global --unset http.proxy

Cunfigure IntelliJ

Настройка IntelliJ для использования прокси на локальном хосте: 3128 Настройка Maven в IntelliJ: измените настройки Maven home directory и User settings file.

После этого вы будете использовать ту же конфигурацию Maven в IntelliJ и командной строке, чтобы все мыслило работало одинаково из IDE и командной строки.

Вы можете использовать свои новые файлы cmdпереключаться между использованием прокси-сервера или без него на лету.

Эта конфигурация занимает 10 минут.и после этого вы можете забыть эту проблему с прокси.

0 голосов
/ 24 октября 2018

Можно попробовать, настроив Mavan соответствующим образом для использования прокси-сервера: - https://dzone.com/articles/how-get-maven-working-through

0 голосов
/ 24 октября 2018

Вы пробовали файл settings.xml в $ {user.home} /. M2 / settings.xml, дополнительные инструкции здесь https://maven.apache.org/guides/mini/guide-proxies.html

в Windows7 и выше, это будет c: \ users \ user_name\ .m2

0 голосов
/ 24 октября 2018

Удаленное соединение закрыло соединение во время рукопожатия: SSL-узел некорректно завершил работу: это указывает на то, что хост сервера, которого вы пытаетесь достичь, не работает, сначала проверьте, правильно ли установлено соединение, и повторите попытку.

0 голосов
/ 24 октября 2018

Maven пытается подключиться к удаленному репозиторию, чтобы загрузить зависимости проекта в его локальный репозиторий.Это сетевое соединение, и, очевидно, из-за вашей конфигурации прокси Maven потерпел неудачу при попытке.

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