Explicação detalhada de repositórios e gerenciamento de distribuição no pom.xml do maven

configuração de armazém remoto de repositórios

No maven, pom.xml é o arquivo de configuração principal para o Maven funcionar. Sua função inclui: configurar o warehouse remoto que precisa ser usado no projeto Maven e a dependência de recursos do projeto Maven. O pom é a abreviatura de Project Object Model.

A função da tag repositories em pom.xml é configurar o warehouse remoto do projeto maven. Os exemplos são os seguintes:

<repository>
    <id>nexus</id><!--远程仓库唯一标识符 -->
    <name>Private Repository</name><!--描述 -->
    <url><!--远程仓库url --></url>
    <layout>default</layout>
    <releases>  
        <enabled>true</enabled>  
    </releases>  
    <snapshots>
       <enabled>true</enabled>
       <updatePolicy>always</updatePolicy>
    </snapshots>
</repository>

Vamos dar uma olhada na configuração primeiro.Você pode adicionar mais de um abaixo dela, cada um com seu ID exclusivo, um nome descritivo e, o mais importante, a URL do warehouse remoto. Além disso, true informa ao Maven para baixar os componentes da versão de lançamento deste repositório, e false diz ao Maven para não baixar os componentes da versão do instantâneo deste repositório. É recomendado proibir o download de componentes de instantâneo de repositórios públicos, porque esses componentes são instáveis ​​e estão fora de seu controle, portanto, você deve evitar usá-los. Claro, se você quiser usar o warehouse dentro da organização na rede local, você pode ativar o suporte de instantâneo

layout: o tipo de layout do armazém usado para localizar e classificar os componentes - pode ser padrão (padrão) ou herdado (herdado). O Maven 2 fornece um layout padrão para seu warehouse; no entanto, o Maven 1.x tem um layout diferente. Podemos usar este elemento para especificar se o layout é padrão (padrão) ou legado (legado).

DistributionManagement distribui componentes para armazéns remotos

mvn install instalará os componentes gerados pelo projeto no warehouse local do Maven e o mvn deploy é usado para distribuir os componentes gerados pelo projeto no warehouse remoto do Maven. Os componentes do warehouse local Maven só podem ser usados ​​pelo usuário atual.Depois de serem distribuídos para o warehouse Maven remoto, todos os usuários que podem acessar o warehouse podem usar seus componentes.

Precisamos configurar o POM para especificar a localização dos componentes de distribuição do Maven, como segue:

<!-- 定义snapshots库和releases库的nexus地址 -->
<distributionManagement>
    <repository>
        <!-- 库的id -->
        <id>nexus-releases</id>
        <!-- 库的url -->
        <url>https://172.17.103.59:8081/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>nexus-snapshots</id>
        <url>https://172.17.103.59:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

Se for uma versão de instantâneo, ele será publicado automaticamente no repositório de instantâneos quando o mvn deploy for executado. Ao usar a versão de instantâneo do módulo, sem alterar o número da versão, ao compilar e empacotar diretamente, o maven irá baixar automaticamente a versão de instantâneo mais recente do servidor espelho.

Se for uma versão de lançamento oficial, ela será lançada automaticamente para a biblioteca de versão oficial quando mvn deploy for executado, e a versão oficial do módulo será usada. Sem alterar o número da versão, ao compilar e empacotar, se o módulo desta versão já existir localmente, ele usará o local em vez de baixá-lo ativamente no servidor espelho.

Deve-se observar que o valor id no elemento server em settings.xml deve ser exatamente o mesmo que o valor id no repositório ou snapshotRepository no POM. Coloque as informações de autenticação nas configurações em vez do POM, porque o POM geralmente é visível para outras pessoas e o settings.xml é local. código mostrado abaixo:

<settings>
    ...    
    <servers>
        <server>
            <id>nexus-releases</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
        <server>
            <id>nexus-snapshots</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
    </servers>
    ...
</settings>

Acho que você gosta

Origin blog.csdn.net/weixin_41003771/article/details/115183595
Recomendado
Clasificación