As etapas de empacotamento maven e upload para um armazém privado

1. Fundo

  Recentemente, alguns kits de ferramentas feitos por você precisam ser extraídos separadamente 在打包的时候,同时上传到自己的maven私服仓库,供别人引用,并且还能够引用的时候看到源码. Porém, no processo de upload, sempre falha e falha, principalmente ficando com raiva. No final, finalmente consegui e registrei as etapas, na esperança de ajudar os necessitados.

2. Passos

  Deixe-me falar sobre meus requisitos primeiro:

  1. O empacotamento local pode carregar automaticamente o armazém do servidor privado maven.
  2. Depois de ser citado por outros, você pode ver o código-fonte e os comentários.

2.1 Modificar pom.xml

2.1.1 Especifique o endereço do depósito de upload

pom.xmlPrimeiro, você precisa adicionar o seguinte parágrafo ao   seu projeto

  <distributionManagement>
  <!--稳定版本的仓库地址,必须是允许上传的私服地址-->
        <repository>
            <id>releases</id>
            <url>http://maven.aaaaaa.com/nexus/content/repositories/thirdparty</url>
        </repository>
        <!--开发版本的仓库地址,必须是允许上传的私服地址-->
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <url>http://maven.aaaaaa.com/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

  Para o nosso número de versão de projeto usual é semelhante a XX-SNAPSHOTeste, este tipo é a versão de desenvolvimento de dados, que será 版本号+时间戳incrementada na forma de após o upload para o servidor privado, e deve especificar <snapshotRepository>o endereço para upload.
  Na imagem acima, idserá dito mais tarde que o endereço aqui urlcorresponde ao endereço do seu armazém. Você pode visitar um endereço semelhante no navegador http://maven.aaaaaa.com/nexus, inserir a senha da conta e fazer login. 4O endereço correspondente à imagem abaixo é:
insira a descrição da imagem aqui
  Deve-se notar que, porque na foto acima, temos vários armazéns. Carreguei-os nos 3armazéns correspondentes. Você pode seguir o endereço real do seu armazém.
  Além disso, ido correspondente releasesna verdade corresponde ao mavenarquivo de configuração especificado conf/setttings.xml, conforme mostrado na figura abaixo: Se o rótulo correspondente não estiver configurado no
insira a descrição da imagem aqui
  correspondente , ele também precisa ser adicionado. Por exemplo:settings.xml<servers>

  <servers>
    <server>
    	<!--与2.1.1中的id值对应-->
        <id>releases</id>
        <!--账号密码需要与私服登录账号密码一致-->
        <username>admin</username>
        <password>znxd</password>
    </server>
  </servers>

  Além disso, observe que a senha da conta do armazém precisa estar correta.

2.1.2 Adicionar plug-in de código-fonte

   A configuração acima é apenas para especificar o endereço do warehouse, pois as pessoas que baixam as dependências precisam poder ver o código fonte, então também há a necessidade de um plug-in, maven-source-plugin. Encontre o projeto novamente pom.xml, adicione o seguinte plugin:

<!-- 上传源码 -->
   <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>3.0.1</version>
        <configuration>
            <attach>true</attach>
        </configuration>
        <executions>
            <execution>
                <phase>compile</phase>
                <goals>
                    <goal>jar</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

   Finalmente, resuma pom.xmla localização dessas duas coisas novas agora:

<project>
	<!-----------省略多余的依赖---------->
	<build>
        <plugins>
         <!-----------省略多余的plugin---------->
         <!-- 上传源码 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.0.1</version>
                <configuration>
                    <attach>true</attach>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <distributionManagement>
        <repository>
            <id>releases</id>
            <url>http://maven.aaaaa.com/nexus/content/repositories/thirdparty</url>
        </repository>
    </distributionManagement>
</project>

  Observação: spring-boot-maven-pluginos plug-ins não podem ser referenciados. Assim que esse plug-in entrar em vigor, significa que o pacote jar que você está criando atualmente é um pacote executável, não o kit de ferramentas que carregamos no servidor privado.

2.2 Execução do Comando

  Após a conclusão da configuração, você pode executar o comando, que pode ser realizado por dois comandos, um é ideaexecutado na ferramenta de desenvolvimento e o outro é o comando através da variável de ambiente mvn.
  Observe que não importa qual dos seguintes comandos você usa, você precisa primeiro prestar atenção ao número da versão. Se a sua versão do pacote existir no servidor privado, ela definitivamente falhará ao empacotar e carregar, e um erro pode ser relatado : Return code is: 400, ReasonPhrase: Bad Request.
  Portanto, não se esqueça de alterar a versão. Como mostrado abaixo:
insira a descrição da imagem aqui

2.2.1 Execução na ideia

  Se a sua ferramenta de desenvolvimento for idea, de fato, eclipsea mesma, é recomendável utilizar este método.
  Na ferramenta de desenvolvimento, encontre o da direita maven project, conforme a figura abaixo:
insira a descrição da imagem aqui
  o comando final é realmente executado clean deploy. Se o log a seguir aparecer após a execução, significa que foi bem-sucedida.

[INFO] Building jar:*******
[INFO] Installing ****  to  *****
[INFO] --- ****   Uploading:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

  Obviamente, você também pode visitá-lo por meio de um navegador para descobrir se existe um pacote jar correspondente no depósito.

2.2.2 execução do comando mvn

  Se você quiser usar mvncomandos, você precisa prestar atenção na configuração das variáveis ​​de ambiente maven. Não vou falar sobre como configurar comandos mvn aqui. Aqui estão as etapas e pontos a serem observados.
  Primeiro, abra o diretório onde o projeto está localizado, e abra o diretório atual através do `cmd, conforme a figura a seguir:

insira a descrição da imagem aqui

Execute o comando da seguinte forma:

mvn -s "C:\Program Files\apache-maven-3.5.011\conf\settings-154waiwang.xml" deploy

  onde -sé --settingsuma abreviação de .
   Eu também estava parado aqui. Sempre pensei que porque eu mavenespecifiquei maven_home/ ao configurar a variável de ambiente m2_home, acho que quando eu usar mvno comando, ele usará automaticamente o settings.xmlarquivo correspondente para empacotamento, e então não é, então por que o acima precisa ser -sespecificado passando settings.xml.
   Se não for especificado, um erro será relatado Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1], o que provavelmente significa nenhuma permissão. Parece que, se não for especificado, um arquivo padrão será usado, porque não há senha de conta correspondente nesse arquivo, portanto, um erro será relatado.

2.3 Dependência após o sucesso

   Depois que o upload for bem sucedido, você pode encontrá-lo através do endereço, conforme a figura a seguir, significa sucesso:
insira a descrição da imagem aqui

3. Expansão

   Por exemplo, se você fizer esse pacote de dependências, pode haver uma atualização posterior, mas se o pacote de dependências anterior tiver sido usado por outros, é impossível notificar os usuários um a um. O próprio Maven fornece essa função de baixar automaticamente as versões superiores. Necessário versionalterar o valor da etiqueta. do seguinte modo:

<dependency>
     <groupId>com.agri</groupId>
     <artifactId>znxd-framework</artifactId>
     <version>[1.0,)</version>
 </dependency>

   onde [1.0,)significa atualizar 1.0o pacote mais recente a partir da versão. Isso tem a vantagem de que, quando seu pacote de extensão for atualizado para um 1.0pacote maior, o projeto do usuário mudará automaticamente para o pacote mais recente. Dessa forma, quando você escreve um código errado, pode atualizar secretamente para o pacote mais recente sozinho para evitar constrangimentos.

Acho que você gosta

Origin blog.csdn.net/wohaqiyi/article/details/116521311
Recomendado
Clasificación