Como uso a linha de comando maven para determinar qual arquivo settings.xml o Maven está pegando?
Como uso a linha de comando maven para determinar qual arquivo settings.xml o Maven está pegando?
Respostas:
Inicie o maven com a opção -X (depuração) e examine o início da saída. Deve haver algo como isto:
...
[INFO] Error stacktraces are turned on.
[DEBUG] Reading global settings from c:\....\apache-maven-3.0.3\conf\settings.xml
[DEBUG] Reading user settings from c:\....\.m2\settings.xml
[DEBUG] Using local repository at C:\....\repository
...
(Os nomes dos diretórios originais são removidos por mim)
O seu comentário à resposta do cletus (correto) implica que há vários arquivos de configurações do Maven envolvidos.
O Maven sempre usa um ou dois arquivos de configurações. As configurações globais definidas em ($ {M2_HOME} /conf/settings.xml) são sempre necessárias. O arquivo de configurações do usuário (definido em $ {user.home} / .m2 / settings.xml) é opcional. Quaisquer configurações definidas nas configurações do usuário têm precedência sobre as configurações globais correspondentes.
Você pode substituir o local das configurações globais e do usuário na linha de comando, o exemplo a seguir definirá as configurações globais para c: \ global \ settings.xml e as configurações do usuário para c: \ user \ settings.xml :
mvn install --settings c:\user\settings.xml
--global-settings c:\global\settings.xml
Atualmente, não há propriedades ou meios para estabelecer de que arquivos de configurações globais e de usuário foram usados com o Maven. Para acessar esses valores, você precisaria modificar o MavenCli e / ou DefaultMavenSettingsBuilder para injetar os locais do arquivo no objeto Configurações resolvido.
Você pode usar o plug - in de ajuda do maven para informar o conteúdo do usuário e os arquivos de configurações globais.
mvn help:effective-settings
solicitará ao maven que cuspa as configurações globais e de usuário combinadas .
Este é o arquivo de configuração do Maven. Pode ser especificado em dois níveis:
Nível de usuário. Esse arquivo settings.xml fornece configuração para um único usuário e normalmente é fornecido em $ {user.home} / .m2 / settings.xml.
NOTE: This location can be overridden with the CLI option:
-s /path/to/user/settings.xml
Nível global. Esse arquivo settings.xml fornece configuração para todos os usuários do Maven em uma máquina (supondo que todos estejam usando a mesma instalação do Maven). É normalmente fornecido em $ {maven.home} /conf/settings.xml.
NOTE: This location can be overridden with the CLI option:
-gs /path/to/global/settings.xml
A M2_HOME
variável de ambiente para a global. Consulte Referência de configurações :
O
settings
elemento nosettings.xml
arquivo contém elementos usados para definir valores que configuram a execução do Maven de várias maneiras, como opom.xml
, mas não devem ser agrupados em nenhum projeto específico ou distribuídos para um público. Isso inclui valores como o local do repositório local, servidores de repositório remoto alternativos e informações de autenticação. Existem dois locais em que um arquivo settings.xml pode estar:
- A instalação do Maven:
$M2_HOME/conf/settings.xml
- A instalação de um usuário:
${user.home}/.m2/settings.xml
the former settings.xml are also called global settings, the latter settings.xml are referred to as user settings. If both files exists, their contents gets merged, with the user-specific settings.xml being dominant.
Um método rápido e sujo para determinar se o Maven está usando o settings.xml desejado invalidaria seu xml e executaria algum comando seguro do maven que requer o settings.xml.
Se ele ler este settings.xml, o Maven reportará um erro: "Erro ao ler o settings.xml ..."