O arquivo de configuração do MAVEN Settings.xml existe em dois lugares:
1. Local de instalação: $ {m2_home} /conf/settings.xml
2. Diretório do usuário: $ {user.home}/. M2/Settings.xml
O primeiro também é chamado de configuração global, que é eficaz para todos os usuários do sistema operacional; O último é chamado de configuração do usuário, que é efetiva apenas para usuários do sistema operacional atual. Se ambos existirem, seu conteúdo será mesclado e as configurações em todo o usuário.
Depois que o MAVEN estiver instalado, o Settings.xml não será gerado automaticamente no diretório do usuário, apenas o arquivo de configuração global está disponível. Se você precisar criar configurações em todo o usuário.xml, poderá copiar as configurações no caminho da instalação para o diretório $ {user.home}/. O padrão padrão do MAVEN.xml é um modelo que contém comentários e exemplos. Você pode modificá -lo rapidamente para atender aos seus requisitos.
Depois que a configuração global for alterada, todos os usuários serão afetados. Se o Maven for atualizado, todas as configurações serão limpas. Portanto, você deve copiar e fazer backup do arquivo $ {m2_home} /conf/settings.xml com antecedência. Geralmente, não é recomendável configurar o Global Settings.xml.
Settings.xml Explicação detalhada
Especificações da declaração
<? xml versão = "1.0" coding = "utf-8"?> <Configurações xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.ww3.org/2001/xmlance xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
LocalRepository
<!- O caminho para o repositório local. O valor padrão é $ {user.home}/. M2/repositório. -> <CousticRepository> usr/local/maven </plocalrepository>interactMode
<!- O MAVEN precisa interagir com o usuário para obter entrada. Se o Maven precisar interagir com o usuário para obter entrada, defina como true, caso contrário, ele deve ser falso. O padrão é verdadeiro. -> <InterativeMode> true </iacativeMode>
usepluginRegistry
<!-MAVEN precisa usar o arquivo plugin-registry.xml para gerenciar a versão do plug-in. Defina como true se você precisar deixar o MAVEN usar o arquivo $ {user.home}/. M2/plugin-registry.xml para gerenciar a versão do plug-in. O padrão é falso. -> <se usepluginregistry> false </se usepluginregistry>Offline offline
<!-indica se o Maven precisa ser executado no modo offline. Verdadeiro Se o sistema de compilação precisar ser executado no modo offline, os padrões de false. Essa configuração é muito útil quando o servidor de construção não pode se conectar ao repositório remoto devido à configuração de rede ou fatores de segurança. -> <flighline> false </flline>
plugingRoups
<!- Quando o ID da organização do plug-in (GroupID) não é fornecido explicitamente, é para pesquisar uma lista de ID da organização do plug-in (GroupID). Esse elemento contém uma lista de elementos de plugingroup, cada elemento filho contém um ID da organização (GroupID). Quando usamos um plug -in e não fornecemos um ID da organização (GroupID) quando o comando agir, o Maven usará a lista. Por padrão, a lista contém org.apache.maven.plugins e org.codehaus.mojo-> <wlucroups> <!-ID da organização do plug-in (groupId)-> </loginRoup> org.codehaus.mojo </flugroup> </lorproup> plugue
proxies
<!-Para configurar diferentes agentes, os perfis multiproxi podem lidar com o ambiente de trabalho de notebooks ou dispositivos móveis: simplesmente definindo o ID do perfil, você pode alterar facilmente toda a configuração de proxy. -> <Iroxies> <!-O elemento proxy contém as informações necessárias ao configurar o proxy-> <Proxy> <!-A definição única do proxy é usada para distinguir diferentes elementos de proxy. -> <id> myProxy </d> <!-Esse proxy é o que é ativado? True ativa o proxy. Quando declaramos um conjunto de agentes e, em algum momento, apenas um agente precisa ser ativado, esse elemento pode ser útil. -> <Active> TRUE </Active> <!-Protocolo Proxy. Protocolo: // nome do host: porta, separada em elementos discretos para facilitar a configuração. -> <Protocol> http </protocol> <!-nome do host do proxy. Protocolo: // nome do host: porta, separada em elementos discretos para facilitar a configuração. -> <dost> proxy.werwhere.com </dost> <!-a porta proxy. Protocolo: // nome do host: porta, separada em elementos discretos para facilitar a configuração. -> <PORT> 8080 </port> <!-O nome de usuário, nome de usuário e senha do nome de login e senha autenticados do servidor proxy. -> <username> proxyuser </sername> <!-A senha do proxy, nome de usuário e senha representam o nome de login e a senha da autenticação do servidor proxy. -> <Password> Somepassword </stordy> <!-Lista de nomes de host que não devem ser proxyed. O delimitador para esta lista é especificado pelo servidor proxy; No exemplo, o delimitador de linha vertical é usado e a vírgula também é comum. -> <NefficyHosts>*. Google.com | ibiblio.org </nocróxyhosts> </roxy> </roxies>
Servidores
<!-definir algumas configurações no servidor. Algumas configurações, como certificadas de segurança, não devem ser distribuídas com Pom.xml. Esse tipo de informação deve existir no arquivo Settings.xml no servidor de construção. -> <Verters> <!-O elemento do servidor contém as informações necessárias ao configurar o servidor-> <verver> <!-Este é o ID do servidor (observe que não é o ID do login do usuário), que corresponde ao ID do elemento repositório no DistributionManagement. -> <id> server001 </d> <!-Nome de usuário autorizado. O nome de usuário de autenticação e a senha de autenticação representam o nome de login e a senha necessários para a autenticação do servidor. -> <nome de usuário> my_login </sername> <!-Senha de autorização. O nome de usuário de autenticação e a senha de autenticação representam o nome de login e a senha necessários para a autenticação do servidor. O recurso de criptografia de senha foi adicionado ao 2.1.0+. Para obter detalhes, visite a página de criptografia de senha-> <dasty> my_password </stadyd> <!-A localização da chave privada usada durante a autenticação. Semelhante aos dois primeiros elementos, o local da chave privada e a senha de chave privada especificam o caminho para uma chave privada (o padrão é $ {user.home}/. Ssh/id_dsa) e uma instrução secreta, se necessário. No futuro, os elementos da senha e da senha podem ser extraídos externamente, mas atualmente eles devem ser declarados em texto simples no arquivo Settings.xml. -> <DerateKey> $ {usr.home}/. ssh/id_dsa </sivredKey> <!-a senha de chave privada usada para autenticação. -> <Passphrase> Alguns_passphrase </passphrase> <!-Permissões quando o arquivo é criado. Se um arquivo ou diretório de repositório for criado durante a implantação, você poderá usar permissões. O valor legal desses dois elementos é um número de três dígitos, que corresponde às permissões do sistema de arquivos UNIX, como 664 ou 775.-> <FilePermissions> 664 </filepermissions> <!-Permissões quando o diretório for criado. -> <DirectoryPermissions> 775 </DirectoryPermissions> </verver> </Servers>espelhos
<!-Download Lista de espelho configurada para a lista de repositório. Para configurações avançadas, consulte a página Configurações do espelho-> <flingrors> <!-Download Mirror para um determinado repositório. -> <inflor> <!-O identificador exclusivo do espelho. O ID é usado para distinguir diferentes elementos espelhados. -> <id> planetmirror.com </id> <!-Nome do espelho-> <name> planetmirror Austrália </name> <!-o URL da imagem. O sistema Build priorizará o uso deste URL em vez de usar o URL do servidor padrão. -> <url> http://downloads.planetmirror.com/pub/maven2 </url> <!-ID do servidor espelhado. Por exemplo, se quisermos configurar um espelho do repositório central do Maven (http://repo.maven.apache.org/maven2/), precisamos definir o elemento para o Central. Isso deve ser exatamente o mesmo que o ID central do armazém central. -> <flinporof> Central </firrof> </firror> </flinflors>
Perfis
<!-Ajuste a lista de configurações de construção de acordo com os parâmetros do ambiente. O elemento de perfil em configurações.xml é a versão cortada do elemento de perfil em pom.xml. Ele contém ID, ativação, repositórios, elementos de pluginRepositores e propriedades. O elemento de perfil aqui contém apenas esses cinco elementos filhos, porque só se importa com todo o sistema de construção (esse é o posicionamento da função do arquivo Settings.xml), em vez das configurações separadas do modelo de objeto de projeto. Se um perfil em uma configuração for ativado, seu valor substitui qualquer outro perfil definido no pom ou perfil.xml com o mesmo ID. -> <Files> <!-Configuração dos componentes ajustados de acordo com os parâmetros do ambiente-> <Filid> <!-o identificador exclusivo dessa configuração. -> <id> teste </d>
Ativação
<!-A lógica condicional de acionar automaticamente o perfil. A ativação é a chave de abertura do perfil. Como os perfis no POM, o poder dos perfis vem de sua capacidade de usar automaticamente certos valores em determinados ambientes específicos; Esses ambientes são especificados pelo elemento de ativação. O elemento de ativação não é a única maneira de ativar um perfil. O elemento ActiveProfile no arquivo Settings.xml pode conter o ID do perfil. O perfil também pode ser explicitamente ativado (por exemplo, teste -p) na linha de comando usando uma tag -p e uma lista separada por vírgula. -> <Activation> <!-Identificação de se o perfil é ativado por padrão-> <ActiveByDefault> false </ActiveByDefault> <!-Quando o JDK correspondente é detectado, o perfil é ativado. Por exemplo, 1.4 ativa o JDK1.4, 1.4.0_2, enquanto! 1.4 ativa todas as versões do JDK que começam com 1.4. -> <Jdk> 1.5 </jdk> <!-Quando o atributo do sistema operacional correspondente é detectado, o perfil é ativado. O elemento OS pode definir alguns atributos relacionados ao sistema operacional. -> <OS> <!-O nome do sistema operacional que ativa o perfil-> <name> Windows XP </name> <!-A família do sistema operacional que ativa o perfil (como 'Windows')-> <milmy> windows </Family> <!-versão de operação da versão de operação da versão de operação da versão do sistema. <!-Se o Maven detectar uma determinada propriedade (seu valor pode ser referenciado no POM por $ {nome}), ele possui o nome correspondente = valor e o perfil será ativado. Se o campo de valor estiver vazio, o perfil será ativado se o campo Nome da propriedade existir. Caso contrário, o campo do valor da propriedade será correspondido de maneira sensível ao minúsculas-> <PROPTY> <!-o nome da propriedade que ativa o perfil-> <name> mavenversion </name> <!-O valor da propriedade que ativa o perfil-> <Value> 2.0.3 </value> </propriedade> <!-fornece um arquivo que ativa o perfil pelo perfil. A falta de verifica se o arquivo existe e ativa o perfil, se ele não existir. Por outro lado, existe verificará se o arquivo existe e ativará o perfil se existir. -> <File> <!-Se existir o arquivo especificado, ativar o perfil. -> <exist> $ {baseado} /file2.properties </stists> <!-Se o arquivo especificado não existir, ative o perfil. -> <inging> $ {baseado} /file1.properties </mingindo> </file> </tiveration> Propriedades
<!-A lista de atributos estendidos correspondentes ao perfil. O atributo maven é o mesmo que o atributo no ANT e pode ser usado para armazenar alguns valores. Esses valores podem ser usados em qualquer lugar do POM com a tag $ {x}, onde x se refere ao nome da propriedade. Os atributos estão disponíveis em cinco formas diferentes e são todos acessíveis no arquivo Settings.xml. 1. Env.x: Prefixado com "Env". retornará uma variável de ambiente de shell. Por exemplo, "Env.Path" refere -se à variável de ambiente $ PATH (% PATH% no Windows). 2. Project.x: refere -se ao valor do elemento correspondente no POM. Por exemplo: <Project> <versão> 1.0 </versão> </project> Obtenha o valor da versão através de $ {Project.version}. 3. Settings.x: refere -se ao valor do elemento correspondente em Settings.xml. Por exemplo: <frifings> <flline> false </flline> </fastings> Obtenha o valor offline através de $ {Settings.offline}. 4. Propriedades do sistema Java: Todas as propriedades que podem ser acessadas através do java.lang.system.getProperties () podem ser acessadas no POM usando esse formulário, como $ {java.home}. 5. X: definido no elemento <Propriedades/>, ou em um arquivo externo, use como $ {algumvar}. -> <Properts> <usuário.install> $ {user.home}/Our-project </user.install> </sperties>Nota: Se o perfil for ativado, você poderá usar $ {user.install} no POM novamente.
Repositórios
<!-Lista de repositório remoto, que é um conjunto de projetos remotos usados pelo Maven para preencher o repositório local do sistema de compilação. --> <repositories> <!--Contains information that needs to be connected to the remote repository --> <repository> <!--Remote repository unique identifier--> <id>codehausSnapshots</id> <!--Remote repository name--> <name>Codehaus Snapshots</name> <!--How to deal with downloading of published versions in remote repository--> <releases> <!--true or false Indica se o repositório está aberto para baixar um certo tipo de componente (versão de liberação, versão instantânea). -> <inabiled> false </ilabed> <!-Este elemento especifica com que frequência a atualização ocorre. O MAVEN compara os registros de data e hora do POM local e do POM remoto. As opções aqui são: sempre, diariamente (padrão, diariamente), intervalo: x (aqui x é um intervalo de tempo em minutos) ou nunca (nunca). -> <DupetarPolicy> sempre </putapolicy> <!-O que fazer quando o arquivo de verificação do componente de verificação do MAVEN falha-Ignore, falha ou aviso. -> <Crecsumpolicy> Warn </chanchsumpolicy> </leaseases> <!-Como lidar com o download de versões instantâneas no repositório remoto. Com os dois conjuntos de configurações, lançamentos e instantâneos, o POM pode adotar estratégias diferentes para cada tipo de componente em cada repositório separado. Por exemplo, alguém pode decidir ativar o suporte para downloads de versão instantânea apenas para fins de desenvolvimento. Consulte o elemento repositórios/repositório/liberações-> <Snapshots> <Enabled/> <updatePolicy/> <checksumpolicy/> </snapshots> <!-URL do repositório remoto, em protocolo: // hostName/Path Form-> <url> http:/snapshots.maven.hapen.code.code.code. Tipo de layout usado para localizar e classificar componentes - pode ser padrão ou legado. O Maven 2 fornece um layout padrão para seu repositório; No entanto, o Maven 1.x tem um layout diferente. Podemos usar esse elemento para especificar se o layout é padrão ou legado. -> <layout> padrão </layout> </repositório> </repositório> <!-Descubra a lista de plug-ins de repositório remoto. Armazéns são casas com dois componentes principais. O primeiro componente é usado como uma dependência para outros componentes. Este é a maioria dos tipos de componentes armazenados em um armazém central. Outro tipo de componente é plug-ins. O plug-in maven é um tipo especial de componente. Por esse motivo, o repositório de plug-in é independente de outros repositórios. A estrutura do elemento pluginRepositórios é semelhante à do elemento repositórios. Cada elemento pluginRepository especifica um endereço remoto que o MAVEN pode usar para encontrar o novo plug -in. -> <PluginRepositionies> <!-contém informações que precisam ser conectadas ao repositório de plug-in remoto. See the description of profiles/profile/repositories/repository element--> <pluginRepository> <releases> <enabled/><updatePolicy/><checksumPolicy/> </releases> <snapshots> <enabled/><updatePolicy/><checksumPolicy/> </snapshots> <id/><name/><url/><layout/> </pluginRepository> </pluginRepository> </file> </files>
PROFILES ATIVOS
<!-Ative manualmente a lista de perfis e defina o ATIVOPROFILE na ordem em que o perfil é aplicado. Este elemento contém um conjunto de elementos ActiveProfile, cada um dos quais contém um ID de perfil. Qualquer ID de perfil definido no ActiveProfile será ativado independentemente da configuração do ambiente. Se não houver perfil correspondente, nada acontece. Por exemplo, se o ENV-Test for um ativo, o perfil correspondente ao ID em pom.xml (ou perfil.xml) será ativado. Se esse perfil não puder ser encontrado durante a corrida, o Maven será executado como de costume. -> <ActiveProfiles> <!--> <CritustRofile> Env-test </titiveProfile> </ActiveProfiles> </Settings>
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.