Plug-in de lançamento do Maven lançando Hostname Not found exceção?

Plug-in de lançamento do Maven lançando Hostname Not found exceção?

Estou tentando lançar um projeto no Jenkins e obtendo uma exceção de host não encontrado.

Caused by: java.lang.RuntimeException: java.net.UnknownHostException: XXXXXXXXXXXXXXX: nodename nor servname provided, or not known
    at org.apache.maven.scm.provider.perforce.PerforceScmProvider.generateDefaultClientspecName(PerforceScmProvider.java:420)
    at org.apache.maven.scm.provider.perforce.PerforceScmProvider.getClientspecName(PerforceScmProvider.java:395)
    at org.apache.maven.scm.provider.perforce.command.checkout.PerforceCheckOutCommand.executeCheckOutCommand(PerforceCheckOutCommand.java:75)
    at org.apache.maven.scm.command.checkout.AbstractCheckOutCommand.executeCommand(AbstractCheckOutCommand.java:82)
    at org.apache.maven.scm.command.AbstractCommand.execute(AbstractCommand.java:59)

Lendo a fonte, parece que a exceção foi lançada nesta linha:

InetAddress.getLocalHost().getHostName();

Como eu não controlo a fonte do plug-in de lançamento, além de alterar o código, há alguma maneira de solucionar esse problema? Posso configurar meus hosts etc de alguma forma para forçar uma resposta específica de "InetAddress.getLocalHost().getHostName()"?

Responder1

Presumo que seu XXXXXXXXXXXXXXX esteja mascarando um nome de host real, não localhost (ou variante/alias de localhost).

Isso pode acontecer se sua máquina tiver um nome de host/endereço IP que não possa ser pesquisado tanto para frente quanto para trás, de acordo com a configuração do seu resolvedor de nomes local. InetAddress.getLocalHost()é conhecido por realizar pesquisas reversas para resolver o host local.

Execute o hostnamecomando e certifique-se de ter uma entrada que corresponda ao seu endereço IP real com esse nome no formato /etc/hosts. Pode ser que hostnameesteja retornando o nome do host FQDN ou o alias/nome abreviado do host e que eles não possam ser pesquisados ​​direta/reversamente.

Outro problema pode ser IPv6 versus IPv4.

Observe que a JVM do Jenkins armazenará em cache as pesquisas de nome de host, portanto, vale a pena ter um pequeno programa de teste para fazer a chamada de teste InetAddress.getLocalHost(), caso contrário, você deve reiniciar o Jenkins após cada alteração de configuração testada.

Forneça comentários/detalhes adicionais para que eu possa melhorar esta resposta.

informação relacionada