Recentemente, os trabalhos de criação do Maven em execução no Jenkins estão falhando, com a exceção abaixo dizendo que eles não podiam obter dependências do Maven Central e deveriam usar HTTPS . Não sei como alterar as solicitações de HTTP para HTTPS . Alguém poderia me orientar sobre esse assunto?
[ERRO] Extensão de compilação não resolvível: não foi possível resolver o
plug - inorg.apache.maven.wagon:wagon-ssh:2.1
ou uma de suas dependências:
falha ao coletar dependências paraorg.apache.maven.wagon:wagon-ssh:jar:2.1 ()
:
falha ao ler o descritor de artefato paraorg.apache.maven.wagon:wagon-ssh:jar:2.1
:
não foi possível transferir o artefatoorg.apache.maven.wagon:wagon-ssh:pom:2.1
de / para a central ( http: //repo.maven.apache. org / maven2 ):
falha ao transferir o arquivo: http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom .
O código de retorno é:501, ReasonPhrase:HTTPS Required. -> [Help 2]
Não foi possível resolver a espera de Jenkins concluir a coleta do
data[ERROR]
plugorg.apache.maven.plugins:maven-clean-plugin:2.4.1
- in ou de uma de suas dependências:
falha ao ler o descritor de artefato paraorg.apache.maven.plugins:maven-clean-plugin:jar:2.4.1
:
não foi possível transferir o artefatoorg.apache.maven.plugins:maven-clean-plugin:pom:2.4.1
de / para a central ( http://repo.maven.apache.org/maven2 ):
falha ao arquivo de transferência: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.pom .
O código de retorno é:501 , ReasonPhrase:HTTPS Required. -> [Help 1]
fonte
settings.xml
jenkins para o maven central urlRespostas:
A razão do erro observado é explicada em Central 501 HTTPS obrigatório
Parece que as versões mais recentes do Maven (tentadas com 3.6.0, 3.6.1) já estão usando o URL HTTPS por padrão.
Aqui estão as datas em que os principais repositórios mudarão:
Suas compilações Java podem ser interrompidas a partir de 13 de janeiro (se você ainda não tiver alterado o acesso ao repositório para HTTPS)
Atualização: Parece que do maven 3.2.3 o maven central é acessado via HTTPS Consulte https://stackoverflow.com/a/25411658/5820670
Registro de alteração do Maven ( http://maven.apache.org/docs/3.2.3/release-notes.html )
fonte
settings.xml
arquivo (e as atualize , por favor, pois esta é a solução correta, além de usar um Maven corrigido).settings.xml
para usar repositórios HTTPS .. com os quais ele pode,wget
mas por algum motivo muito estranhomvn archetype:generate -X
(para testar apenas se as dependências podem ser baixadas), ele ainda imprime que está acessandoDownloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom
Qualquer ajuda, por favor ..?Estou enfrentando o mesmo problema. Tentei duas soluções e ambas funcionam bem para mim.
Atualize o repositório da versão do Maven:
Faça o download do binário do Apache Maven que inclui os endereços https padrão ( binário do Apache Maven 3.6.3 ). E abra a janela de diálogo Opções nas ferramentas da barra de menus do NetBeans ( Java Maven Dialog View ). E selecione a opção de navegação na caixa de listagem inicial do Maven ( exibição da caixa de listagem inicial do Maven ). Após adicionar a versão recém-baixada do Apache Maven ( exibição atualizada da caixa de listagem inicial do Maven ), o projeto é construído e executado com êxito.
Restrinja a versão atual do Maven para usar os links HTTPS:
Inclua o seguinte código no pom.xml do seu projeto.
fonte
( fonte )
Fizemos as seguintes alterações no build.gradle do meu projeto:
Velho:
Novo:
fonte
Tente acessar o URL abaixo em qualquer navegador. Retornará 501
http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom
Por favor, tente com https. Ele fará o download de um arquivo pom.xml:
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom
Por favor, adicione-o ( https://repo.maven.apache.org/maven2 ) no arquivo setting.xml:
fonte
Atualize o repositório central do Maven e use https em vez de http .
fonte
Eu estava usando uma instalação limpa do Maven / Java em um contêiner do Docker.
Para mim, eu tive que
cd $M2_HOME/conf
editar osettings.xml
arquivo lá. Adicione o seguinte bloco dentro<mirrors>...</mirrors>
fonte
Eu estava usando uma versão desatualizada do Maven (3.0.3 e 3.1). Essas versões mais antigas não são mais compatíveis com repositórios http (como mencionado acima). Atualizar para o Maven 3.6 foi a correção para mim.
fonte
O Maven está migrando para HTTPS e desativando o acesso HTTP
Em resumo, a partir de 15 de janeiro de 2020, o repositório do Maven Central não oferece mais suporte a conexões HTTP (outros repositórios estão fazendo o mesmo). Portanto, você indicará suas configurações de Maven / Gradle para usar um URL HTTPS.
Solução:
Você pode escolher uma das três abordagens a seguir.
Adicione um repositório no
pom.xml
arquivo do seu projetoInclua o repositório em um perfil no
settings.xml
arquivo.Para Gradle:
Substitua apenas o URL da versão HTTPS.
fonte
$M2_HOME
ou suas$PATH
variáveis env apontarão apenas para uma delas, que será sua versão padrão do maven. Eu preferiria desinstalar o mais antigo antes de instalar um mais novo. Mas isso depende de suas necessidades.Fui adicionado após o segmento de código ao setting.xml e foi resolvido o problema,
fonte
Tenho o mesmo problema, mas uso o GitLab em vez do Jenkins. As etapas que tive que fazer para solucionar o problema:
Percebo que é mais específico para minha configuração. Mas, sem executar todas as etapas acima, continuarei recebendo a mensagem de erro
Return code is: 501 , ReasonPhrase:HTTPS Required
fonte
Conforme declarado em outras respostas, agora é necessário https para fazer solicitações ao Maven Central, enquanto versões mais antigas do Maven usam http .
Se você não deseja / não pode atualizar para o Maven 3.2.3+, você pode executar uma solução alternativa adicionando o seguinte código ao seu MAVEN_HOME \ conf \ settings.xml na
<profiles>
seção:Essa será sempre uma configuração ativa, a menos que você a desative / substitua no POM, quando necessário.
fonte
Para todos os codificadores corporativos, idealmente, se você receber esse erro, isso significa que sua base de códigos ainda está sendo construída a partir da comunidade de código aberto. Você precisa percorrer o repositório "central" com seu gerente de repositório Maven da empresa.
Você pode acessar o arquivo settings.xml e substituir o URL do repositório central de http: // para https: //
Encontre as seções de espelhos e adicione a seguinte entrada:
Na seção URL, se você estivesse usando http://repo1.maven.org/maven2/ ou http://repo.maven.apache.org/maven2/ então
Substitua http://repo1.maven.org/maven2/ por https://repo1.maven.org/maven2/
Substitua http://repo.maven.apache.org/maven2/ por https://repo.maven.apache.org/maven2/
Idealmente, você precisa usar a URL de gerenciamento / repositório de controle de origem da empresa aqui. Como isso bloqueará qualquer contato com a comunidade de repositórios Maven de código aberto.
Como mencionado em outras respostas, a partir de 15 de janeiro de 2020, o repositório central do Maven não suporta comunicação insegura através de HTTP simples.
fonte
Para mim (codificador corporativo) também adicionando um repositório de espelho na
settings.xml
correção do problema. Também estou usando o Maven dentro de um contêiner.fonte
Usando o Ubuntu 16.04, java 1.8.0_201.
Desinstalei o maven antigo e instalei o Maven 3.6.3, ainda recebi este erro que as dependências do Maven estão falhando com um erro 501.
Percebeu que poderia haver um problema no armazenamento confiável / keystore associado à solicitação de https. Concluiu que agora você pode configurar as opções -Djavax usando um arquivo jvm.config, consulte: https://maven.apache.org/configure.html .
Como também estou usando o Tomcat, copiei a configuração keystore & truststore do Tomcat (setenv.sh) para o meu jvm.config e funcionou!
Também existe uma opção para passar esta configuração em 'export MAVEN_OPTS' (ao usar o mvn generate), mas embora isso tenha parado o erro 501, ele criou outro: esperava um arquivo pom.
Criar um arquivo jvm.config separado funciona perfeitamente, basta colocá-lo na raiz do seu projeto.
Espero que isso ajude alguém, me levou o dia todo para descobrir!
fonte
O mesmo problema também está ocorrendo para o jcenter .
Os projetos que obtêm suas dependências usando o mesmo começarão a enfrentar problemas. Para correções rápidas, faça o seguinte em seu build.gradle
ao invés de
usa isto:
fonte
O erro:
Falha ao transferir o arquivo: http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom .
O código de retorno é: 501, ReasonPhrase: HTTPS Necessário.
Análise de causa raiz:
O Maven central espera que os clientes usem https, mas o cliente está fazendo apenas uma solicitação HTTP simples.
Portanto, a solicitação de download do pacote chamado 'wagon-ssh-2.1.pom' falhou.
Como resolver o problema?
Substitua o URL " http://repo.maven.apache.org/maven2 "
com " https://repo.maven.apache.org/maven2 "
no arquivo pom.xml ou no arquivo build.gradle do projeto.
fonte
Compartilhando isso caso alguém precise:
Configuração Old Gradle (sem implantações do Gitlab, Docker, para projetos simples)
Nova configuração:
Observe o https. Feliz codificação :)
fonte
Meu ambiente atual não suporta HTTPS, portanto, a adição de uma versão não segura do repositório resolveu meu problema: http://insecure.repo1.maven.org conforme Sonatype
fonte
Adicione o seguinte repositório no pom.xml .
fonte
http