O seu projeto não mudou no trem para casa, mas a rota de rede dele mudou. Um endereço de proxy que funciona no escritório pode ficar inacessível em casa. Isso é uma configuração de ambiente, não um motivo para colocar o proxy do seu empregador no POM do projeto.

O modelo de configurações do Maven coloca as definições de proxy na sua seção de nível superior proxies. Os perfis de configurações não fornecem uma segunda cópia arbitrária dessa seção. Adicionar um fragmento XML em forma de proxy sob um perfil não o torna um mecanismo de troca de rede suportado.

Uma opção direta é manter configurações aprovadas para cada ambiente e selecionar a adequada:

mvn --settings /path/to/settings-office.xml verify

O exemplo seleciona explicitamente as configurações de usuário. Use o comando e o arquivo adequados à compilação; isso não significa que o arquivo deva ser commitado com credenciais.

Mantenha as diferenças pequenas

Registre quais configurações realmente variam: proxy ativo, hosts de contorno, espelhos e contas de servidor necessárias. Um segundo arquivo não deve remover silenciosamente uma política de repositório não relacionada nem usar uma senha antiga.

Verifique quaisquer configurações globais que ainda sejam combinadas com as configurações de usuário selecionadas. Um arquivo explícito torna a entrada visível, mas não implica que o Maven não tenha outras fontes de configuração.

A troca automática precisa de um sinal real

O Maven não consegue inferir "escritório" da localização do laptop no sentido comum. Um arranjo automático precisa de um mecanismo externo de descoberta ou gestão suportado e de uma resposta definida quando esse mecanismo não estiver disponível.

Tenha cuidado com padrões de contorno amplos destinados a desativar o proxy em casa. Eles também podem afetar destinos internos ou ocultar qual rota uma solicitação seguiu.

Para um primeiro reparo, prefira uma seleção de configurações visível e explícita. Depois que funcionar nos dois ambientes, qualquer automação pode reproduzir essa configuração conhecida em vez de reescrever repetidamente as instruções de compilação do projeto.

Artigos relacionados