não pode fazer uso maven HTTPS apesar da configuração settings.xml onde tenho repositórios com HTTPS

Giorgi Tsiklauri:

Eu pesquisei quase toda StackOverflow, sites Apache e tudo que eu poderia fazer em um dia, mas não conseguia começar este trabalho.

Eu tenho Maven 3.0.5com Jdk8configuração (que é de especial pilha, e as versões não será revisto) dentro de um ambiente Vagrant. Eu estou ciente de Apachedecisão para forçar todos os repositórios do Maven para usar somente HTTPS, os clientes de outra forma Maven não estará falando para os servidores do repositório.

Parece que eu tiver configurado todas as definições necessárias no meu ~/.m2/settings.xmle por algum motivo muito estranho, quando eu executar qualquer comando (qualquer fase de construção, digamos mvn clean), padrões Maven para HTTP e não se preocupa com settings.xml - ainda tentativas de referências de download / dependências com o protocolo HTTP.

Exemplo da minha settings.xml(Para simplificar, eu removi projeto coisas específicas e somente isso à esquerda, ele não funciona mesmo com essa)

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                    https://maven.apache.org/xsd/settings-1.0.0.xsd">
<repositories>
  <repository>
    <id>central</id>
    <url>https://repo1.maven.org/maven2/</url>
  </repository>

  <repository>
    <id>central</id>
    <url>https://repo.maven.apache.org/maven2/</url>
  </repository>
</repositories>

e aqui está o que eu estou recebendo o comando de teste mvn archetype:generate(o problema é persistente por quaisquer outros comandos fase de construção)

[INFO] Digitalização para projetos ... Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom [AVISO] Falha para recuperar de encaixe descritor para org.apache.maven.plugins: maven-limpo-plug-in: 2,5: org.apache.maven.plugins plug-in: maven-limpo-plug-in: 2,5 ou uma das suas dependências não poderia ser resolvido : Falha ao ler descritor artefato para org.apache.maven.plugins: maven-clean-plugin: jar: 2,5 Download: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven- install-plugin / 2.3 / maven-install-plugin-2.3.pom[AVISO] Falha ao recuperar o plugin descritor para org.apache.maven.plugins: Maven-install-plugin: 2.3: org.apache.maven.plugins Plugin: maven-install-plugin: 2.3 ou uma de suas dependências não pôde ser resolvido : Falha ao ler descritor artefato para org.apache.maven.plugins: maven-install-plugin: jar: 2.3 Baixando: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven- deploy-plugin / 2.7 / maven-deploy-plugin-2.7.pom [AVISO] Falha ao recuperar o plugin descritor para org.apache.maven.plugins:-deploy maven-plugin: 2,7: org.apache.maven.plugins Plugin: maven -Implante-plug-in: 2,7 ou uma das suas dependências não poderia ser resolvido: Falha ao ler descritor artefacto para org.apache.maven.plugins:-maven-implantação de encaixe: jar: 2,7 Descarregador:http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-site-plugin/3.0/maven-site-plugin-3.0.pom [AVISO] Falha ao recuperar descritor plugin para org. apache.maven.plugins:-maven-local Plugin: 3.0: org.apache.maven.plugins Plugin: local maven-plugin: 3.0 ou uma de suas dependências não pôde ser resolvido: Falha ao ler descritor artefato para org.apache. maven.plugins: maven local-de encaixe: jar: 3.0 Transferir: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin -1.3.pom[AVISO] Falha ao recuperar o plugin descritor para org.apache.maven.plugins: maven-antrun-plugin: 1.3: org.apache.maven.plugins Plugin: maven-antrun-plugin: 1.3 ou uma de suas dependências não pôde ser resolvido : Falha ao ler descritor artefato para org.apache.maven.plugins: maven-antrun-plugin: jar: 1.3 Baixando: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven- assembly-plugin / 2.2-beta-5 / maven-assembly-plugin-2,2-beta-5.pom [AVISO] Falha ao recuperar o plugin descritor para org.apache.maven.plugins: maven-assembly-plugin: 2.2 beta 5: org.apache.maven.plugins plugin: maven-assembly-plugin: 2,2-beta-5 ou uma de suas dependências não pôde ser resolvido: Falha ao ler descritor artefato para org.apache.maven.plugins: maven-montagem- plugin: jar:-2.2-beta 5 Download:http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.1/maven-dependency-plugin-2.1.pom [AVISO] Falha ao recuperar descritor plugin para org. apache.maven.plugins:-maven-dependência plugin: 2.1: org.apache.maven.plugins Plugin:-dependência maven-plugin: 2.1 ou uma de suas dependências não pôde ser resolvido: Falha ao ler descritor artefato para org.apache. maven.plugins: maven-dependência-plugin: jar: 2.1 Baixando: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-release-plugin/2.0/maven-release-plugin -2.0.pom[AVISO] Falha ao recuperar o plugin descritor para org.apache.maven.plugins:-release maven-plugin: 2,0: org.apache.maven.plugins Plugin: maven-release-plugin: 2.0 ou uma de suas dependências não pôde ser resolvido : Falha ao ler descritor artefato para org.apache.maven.plugins: maven-release-plugin: jar: 2.0 Baixando: http://repo.maven.apache.org/maven2/org/codehaus/mojo/maven-metadata. xml Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml [AVISO] não foi possível transferir metadados org.apache.maven.plugins / maven-metadata.xml de / para o central ( http://repo.maven.apache.org/maven2 ): Falha ao arquivo de transferência: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata .xml. Código de retorno é: 501, ReasonPhrase: HTTPS Obrigatório. [AVISO] Não foi possível transferir metadados org.codehaus.mojo / maven-metadata.xml de / para o central ( http://repo.maven.apache.org/maven2 ): Falha ao arquivo de transferência: http: //repo.maven .apache.org / maven2 / org / codehaus / mojo / perito-metadata.xml . Código de retorno é: 501, ReasonPhrase: HTTPS Obrigatório. [AVISO] Falha em org.apache.maven.plugins Transferência / maven-metadata.xml de http://repo.maven.apache.org/maven2 foi armazenado em cache no repositório local, resolução não será reattempted até que o intervalo de actualização de central tem decorrido ou atualizações são forçados. De erro original: Não foi possível transferir metadados org.apache.maven.plugins / maven-metadata.xml de / para o central ( http://repo.maven.apache.org/maven2): Falha ao arquivo de transferência: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml . Código de retorno é: 501, ReasonPhrase: HTTPS Obrigatório. [AVISO] Falha de transferência org.codehaus.mojo / maven-metadata.xml de http://repo.maven.apache.org/maven2 foi armazenado em cache no repositório local, resolução não será reattempted até que o intervalo de atualização da central tem decorrido ou atualizações são forçados. De erro original: Não foi possível transferir metadados org.codehaus.mojo / maven-metadata.xml de / para o central ( http://repo.maven.apache.org/maven2 ): Falha ao arquivo de transferência: http: //repo.maven .apache.org / maven2 / org / codehaus / mojo / perito-metadata.xml . Código de retorno é: 501, ReasonPhrase: HTTPS Obrigatório .

O que devo fazer? como você pode ver, em cima de usar HTTP, recebo correspondentemente HTTP 501.

Giorgi Tsiklauri:

Como eu passei o dia todo com isso, eu acho que vale a pena compartilhar a experiência, os resultados de depuração e a maneira de resolver este problema.

Havia dois problemas:

1) [AVISO] Falha ao recuperar descritor plugin para .. (seja lá o plugin de nome) avisos durante quase toda a fase de construção (limpo, pacote ou etc.), que diz que (importante >>) a recuperação de plugin de descritores ou suas dependências ( o que significa plugins , e não as dependências do projeto !) não está indo bem sucedido.

Razão deste (neste caso) é que Maven tentativas de se comunicar com uma máquina de ponto final (repositório) via HTTP (como você vê na citação da questão), apesar do fato de (!), Que eu ter personalizado a configuração do meu .m2\settings.xmlarquivo e todas as entradas de definição de repositório são definidos com HTTPS , respectivamente, parece que maven deve estar tentando tudo via HTTPS ..mas não, ele usa HTTP para plugins, e qualquer comunicação HTTP com repositórios Maven é proibido desde o 15 de janeiro, 2020 .

A maneira como eu resolvi isso é definir e configurar <profiles/>e <pluginRepositories/>como @carlspring sugeriu , mas eu tinha que elaborar e expandir essa resposta um pouco. Então, aqui é a minha pronta settings.xmlexemplo: (nota, que apenas para ser seguro, eu desde repositórios alternativos em ambos - perfis e repositórios)

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"                                                                                                                                     $    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                        https://maven.apache.org/xsd/settings-1.0.0.xsd">

<profiles>
<profile>
   <id>ssl-profile</id>
   <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <repositories>
        <repository>
            <id>central-1</id>
            <url>https://repo1.maven.org/maven2</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>central-2</id>
            <url>https://repo1.maven.org/maven2</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
</profile>
  <repositories>
    <repository>
      <id>central1</id>
      <url>https://repo1.maven.org/maven2/</url>
    </repository>
    <repository>
      <id>central2</id>
      <url>https://repo.maven.apache.org/maven2/</url>
    </repository>
  </repositories>
  </profiles>
</settings>

Após isso foi resolvido, e, finalmente, maven tomou esta configuração e começou a tentar se conectar a todos os repositórios via HTTPS , eu tinha um outro - 2º problema.

2) não pelos pares autenticado seguido pelo código de retorno é: 501, ReasonPhrase: HTTPS Obrigatório.

Este foi um pouco complicado, mas a maneira de resolver isso é para jogar com truststore cacertsarquivo. Primeiro, verifique se você tem truststore arquivo cacertse se ele está vazio ou não! Ela não deve estar vazio e isso é muito importante. Parece que em OpenJDK11e alguns outros constrói em algumas distribuições do Windows / Linux, cacertsarquivo está faltando ou esvaziar; No entanto, de acordo com minha observação, que estava presente em OracleJDKcompilações.

  • No Windowsconstrói, ele deve estar sob %JAVA_HOME%\lib\security\;
  • No Linux constrói, pode variar (dependendo da distribuição Linux e sua configuração), mas no meu caso, foi sob /etc/ssl/certs(e eu acho que é a pasta certificados do Linux, não particularmente um de Java).

Se você ver (e você vê mais provável, se você tem esse ponto não autenticado problema) que você não quer ter cacertsde arquivo ou ele está vazio (basta verificar o tamanho do arquivo, ele deve ser maior do que alguns bits), você pode:

  • Basta copiar e colar existente cacertsarquivo de alguma outra construção Jdk / jre;
  • Gerar um cacertsarquivo de truststore e adicionar o certificado (s) a ele (neste caso, você precisará adicionar tantos certificados quanto você precisa, por isso, talvez seja mais fácil de ir com apenas uma cópia e colar)

Eu espero que isso ajude.

Acho que você gosta

Origin http://10.200.1.11:23101/article/api/json?id=478683&siteId=1
Recomendado
Clasificación