Estou recebendo um erro ao implantar um artefato em meu próprio repositório em um servidor Nexus: "Falha ao implantar artefatos: Não foi possível transferir o artefato" "Falha ao transferir o arquivo http: /// my_artifact. O código de retorno é: 400"
Tenho o Nexus em execução com um repositório personalizado my_repo com a próxima configuração local do maven:
settings.xml
<server>
<id>my_repo</id>
<username>user</username>
<password>pass</password>
</server>
...
<mirror>
<id>my_repo</id>
<name>Repo Mirror</name>
<url><my_url_to_my_repo></url>
<mirrorOf>*</mirrorOf>
</mirror>
- o usuário tem permissão para criar / ler / gravar em my_repo -
pom.xml
<distributionManagement>
<repository>
<id>my_repo</id>
<name>my_repo</name>
<url><my_url_to_my_repo></url>
<layout>default</layout>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshots</name>
<url><my_url_to_my_snapshot_repo></url>
</snapshotRepository>
</distributionManagement>
e então eu executo
mvn deploy
e obter o erro. Qualquer ideia?
maven
deployment
pom.xml
nexus
acimutal
fonte
fonte
Respostas:
Algumas coisas em que posso pensar:
Verifique-os e, se ainda tiver problemas, forneça mais detalhes aqui.
fonte
Apenas para criar uma resposta separada. A resposta é realmente encontrada em um comentário para a resposta aceita.
Tente mudar a versão do seu artefato para terminar
-SNAPSHOT
.fonte
400 Bad Request será devolvido se você tentar:
fonte
A causa do problema para mim foi que -source.jars foi carregado duas vezes (com maven-source-plugin), conforme mencionado como uma das causas na resposta aceita. Redirecionando para responder ao que me referi: O plugin de lançamento do Maven falha: artefatos de origem sendo implantados duas vezes
fonte
Eu tive exatamente esse problema hoje e o problema era que a versão que eu estava tentando lançar: perform já estava no repositório Nexus.
No meu caso, isso provavelmente foi devido a uma desconexão de rede durante uma chamada anterior de release: perform. Mesmo que eu tenha perdido minha conexão, parece que o lançamento foi bem-sucedido.
fonte
No caso raro de você precisar reimplantar o artefato SAME STABLE no Nexus, ele falhará por padrão. Se você excluir o artefato do Nexus (por meio da interface da web) com o propósito de implementá-lo novamente, a implementação ainda falhará, uma vez que apenas remover o jar ou pom, por exemplo, não limpa outros arquivos que ainda estão no diretório. Você precisa fazer logon na caixa e excluir o diretório por completo.
fonte
content/vol-{01-43}/chap-{01-47}
Tive o mesmo problema hoje com a adição de "O código de retorno é: 400, ReasonPhrase: Bad Request." que acabou sendo o "artefato já está implantado com aquela versão se for um problema de liberação" da resposta acima insira a descrição do link aqui
Uma solução não mencionada ainda é configurar o Nexus para permitir a reimplantação em um repositório de lançamento. Talvez não seja uma boa prática, porque isso é definido por um motivo, você pode ir para "Configurações de acesso" na guia "Configuração" de seus repositórios Nexus e definir a "Política de implantação" para "Permitir reimplantar".
fonte
exemplo: 0.0.1-SNAPSHOT
fonte
Certifique-se de que ainda não exista (artefato e versão) no nexo (como versão). Nesse caso, devolva o pedido incorreto.
fonte
Para o erro 400, verifique o repositório "Política de implantação" geralmente é "Desativar reimplantar". Na maioria das vezes, a versão de sua biblioteca já está lá, por isso você recebeu uma mensagem "Não foi possível PUT colocar ' https: //yoururl/some.jar '. Código de status recebido 400 do servidor: Repositório não permite atualização de ativos:" seu nome do repositório "
Portanto, você tem algumas opções para resolver isso. 1- permitir reimplantar 2- excluir a versão de seu repositório que você está tentando carregar 3- alterar o número da versão
fonte
Se alguma das respostas acima funcionar, você pode criar um novo artefato diretamente do lado do administrador (captura de tela NEXUS anexada abaixo).
Login to nexus
UI http: // YOUR_URL: 8081 / nexus (nome de usuário: senha padrão do administrador : admin123 )Click repositories
no lado esquerdo, clique no repositório, Por exemplo: clique em liberar.artifact Upload
(última guia).GAV definition
comoGAV Param
- Em seguida, insira seu groupid, id do artefato e versão.Agora você poderá adicionar a resposta correspondente ao seu projeto. (Captura de tela abaixo)
fonte
Isso também pode acontecer se você tiver uma política de nomenclatura em torno da versão, proibindo a versão # que está tentando implantar. No meu caso, estava tentando fazer o upload de uma versão (para lançar o repo)
2.0.1
mas depois descobri que nossa configuração de Nexus não permite nada além de um número inteiro para lançamentos.Eu tentei mais tarde com a versão
2
e implantei com sucesso.A mensagem de erro definitivamente não ajuda:
Uma mensagem melhor poderia ter sido
version 2.0.1 violates naming policy
fonte
O id do servidor deve corresponder ao id do repositório de maven settings.xml
fonte